【发布时间】:2012-03-15 12:19:50
【问题描述】:
我有一个包含多个ComboBoxes 的 WPF 应用程序。一些组合框的ItemsSource 绑定到对象列表。我想将每个组合框的文本属性绑定到MyObject 的某个属性。每次用户在MyListView 中选择某行时,我都会更新MyObject 的属性,并且我希望组合框的文本属性也能更新。
这是其中一个组合框的 XAML:
<StackPanel Orientation="Vertical" x:Name="StackPanel_MyStackPanel">
<ComboBox x:Name="comboBox_MyComboBox"
IsEditable="True"
ItemsSource="{Binding}"
Text="{Binding Path=MyProperty}" />
</StackPanel>
在后面的代码中:
MyObject myObject = new MyObject();
// On the selection changed event handler of the MyListView,
// I update the MyProperty of the myObject.
this.StackPanel_MyStackPanel.DataContext = myObject;
MyObject的定义:
public class MyObject
{
private string _MyProperty;
public string MyProperty
{
get { return _MyProperty; }
set { _MyProperty = value; }
}
}
这不起作用....我不知道为什么。
【问题讨论】:
-
在分配
this.StackPanel_MyStackPanel.DataContext = myObject之前或之后,您具体何时更新myObject.MyProperty? -
我想将组合框的 Text 属性绑定到 MyObject.MyProperty ,组合框的 ItemSource 绑定到我后面代码中的某个集合 - 我这里没有提到是什么集合。跨度>
-
@Clemens 在我分配 this.StackPanel_MyStackPanel.DataContext = myObject 之后
-
那么
MyObject类需要实现INotifyPropertyChanged并在MyProperty变化时引发PropertyChanged事件。 -
好吧.....你说得对......我现在就去做,并告诉你它是否解决了我的问题......
标签: wpf c#-4.0 data-binding combobox wpf-controls