WPF - 如何在属性是动态时实现INotifyPropertyChanged

时间:2009-03-01 04:48:03

标签: .net wpf

我有一个实现PropertyObjects集合的业务对象。

BusinessObject的    SomeCollection        Property1Object(Name = Height)        Property2Object(Name = Width)

目前,我将UserControl的DataContext设置为BusinessObject。我发现我可以用这样的东西引用到绑定中的集合,比如说在textBox中。

UserControl.DataContext = BusinessObject UserControl.TextBlock        Text =“{Binding Collection [Height] .Value}”

现在,我可以在什么级别正确实现INotifyPropertyChanged,即使在更高级别它根本不是属性。

很容易看到并提升最低级别的PropertyObject,但这足以让绑定工作吗?

谢谢, 杰夫

2 个答案:

答案 0 :(得分:1)

如果我理解正确,Collection数组中的每个对象都有一个名为Value的属性,这就是TextBlock UserControl中显示的属性。只要数组中的每个对象都实现INotifyPropertyChanged,并在Value的值发生更改时触发事件,TextBlock中的文本就会更新(您可能需要更改{{ 1}}到BindingMode,我也不确定。)

答案 1 :(得分:0)

如果你是假的实现自己的集合,你需要实现INotifyCollectionChanged(http://msdn.microsoft.com/en-us/library/system.collections.specialized.inotifycollectionchanged.aspx