2013-04-06 158 views
0

我在我的視圖模型屬性MyProperty其中也有一些屬性中調用OnPropertyChanged。只有當其中一個屬性發生變化時,我纔會明確地呼叫OnPropertyChanged("MyProperty")當一個屬性的屬性改變

我能做到這一點

MyProperty.PropertyChanged += MyPropertyChanged; 

但是當所有屬性的更改處理程序被調用。我知道我可以檢查PropertyName是否匹配,但我想知道是否有更好的方法。

我需要這個的原因是因爲我綁定MyProperty某些控件和轉換器我需要使用它的多個屬性,但是當這些屬性更改時,控件中看不到該更改。

+0

爲什麼不提高'PropertyChanged'連續兩個屬性? – 2013-04-06 18:34:07

+0

我不知道我能做到。我在這裏談論MyProperty及其屬性之一(MyPropertyProperty)。解決辦法是在MyPropertyProperty更改時在我的viewmodel中調用OnPropertyChanged(「MyProperty」),但是我不知道如何實現這個 – 2013-04-06 18:46:36

+0

哦,那麼你必須按照上面提到的方式檢查處理程序中的屬性名稱並自己提高它。爲什麼你認爲這不是更好的解決方案? – 2013-04-06 18:49:11

回答

1

如果myProperty的類型的屬性不再跳躍到任何東西那麼沒有理由爲該類型實現INotifyPropertyChanged的。無論是否存在 - 如果您需要手動處理其中一個屬性的更改,您可以簡單地定義在視圖模型中更改和處理時引發的自定義事件。如果您已經使用的PropertyChanged和比較字符串 - 你應該罰款,除非該事件發生每秒多少次,