假设我有一个业务对象“obj1
”,其属性为“P
”。
我们还假设我有一个业务对象列表:“List<BussObj> list
”,每个BussObj对象包含2个属性:“A
”和“B
”。
此列表绑定到组合框:combobox.ItemsSource = list;
。
我想指定将combobox.SelectedItem.B绑定到我的obj.P的绑定(在C#代码中)。怎么做?
我尝试了类似的东西,但它不起作用:
Binding bind= new Binding("B");
bind.Source = obj.P;
comboSubject.SetBinding(ComboBox.SelectedItemProperty, bind);
提前感谢您的任何帮助
答案 0 :(得分:0)
究竟什么不起作用?选择更改时,ComboBox
中未选择相应的项目,或P
是否未更新? P
绑定到的列表中ComboBox
的值是什么?
您也可以尝试验证obj
的类型是INotifyPropertyChanged
,还是DependencyObject
,P
是DependencyProperty
。
答案 1 :(得分:0)
抱歉,我没有t clarify it. I
仅以一种方式使用此绑定:在选择组合框中的某个项目后,应将适当的值写入obj.P
。在那种情况下,不需要INotifyPropChanged或DependencyProperty
答案 2 :(得分:0)
不确定你是否仍然需要这个或者这会有所帮助,但你可以尝试使用一种方式来源绑定模式,因为默认是TwoWay:
Mode = BindingMode.OneWayToSource
另外,我会这样做,不确定这是否有帮助:
comboSubject.SetBinding(
Selector.SelectedItemProperty,
new Binding { Source = selectedItemSource, Path = "SelectedItem" });
看看这是否有效......