代码中的高级组合框绑定

时间:2009-10-08 13:16:34

标签: c# wpf binding combobox

假设我有一个业务对象“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);

提前感谢您的任何帮助

3 个答案:

答案 0 :(得分:0)

究竟什么不起作用?选择更改时,ComboBox中未选择相应的项目,或P是否未更新? P绑定到的列表中ComboBox的值是什么?

您也可以尝试验证obj的类型是INotifyPropertyChanged,还是DependencyObjectPDependencyProperty

答案 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" });

看看这是否有效......