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