C类实现INotifyPropertyChanged。依赖于其他属性的依赖属性
假设C具有长度,宽度和面积属性,其中Area = Length * Width。 中的更改可能会导致面积发生更改。所有三个都是绑定的,即UI期望所有三个都通知其值的变化。
当“长度”或“宽度”更改时,它们的setter调用NotifyPropertyChanged。
我应该如何处理计算的面积属性?目前我能想到的模式是在NotifyPropertyChanged中检测更改的属性是长度还是宽度,如果是这种情况,则为Area启动一个附加的PropertyChanged通知。但是,这需要我在NotifyPropertyChanged内部维护依赖关系图,我认为这是一种反模式。
所以,我的问题是:我应该如何编码依赖于其他依赖属性的依赖属性?
编辑:这里的人认为,长和宽也呼吁NotifyPropertyChanged的区域。再次,我认为这是一种反模式。一个属性(恕我直言)不应该知道谁取决于它,因为不应该NotifyPropertyChanged。只有财产应该知道它依赖于谁。
不要混淆[依赖性](HTTP :// MSDN。microsoft.com/en-us/library/ms752914.aspx)与实现INotifyPropertyChanged的类的属性。这不是一回事。 – Clemens 2012-02-20 13:16:05
如果你真的不喜欢它。将您的视图模型注册到它自己的PropertyChanged事件中,侦听宽度和长度的属性更改,然后再次提高Area的更改。但是,它再一次证明了它可以提高多个属性。实际上,募集将永远不会调用财产的创造者,只有吸收者才是安全的。 – dowhilefor 2012-02-20 13:59:40
Duplicate http://stackoverflow.com/questions/5440121/databinding-to-calculated-field – 2012-02-26 13:28:08