[英]INotifyPropertyChanged on all properties
考慮到一個具有大量屬性的類,我想實現一個 Dirty 標志(為了知道我是否應該更新數據庫中的值)。
有沒有辦法在所有PropertyChanged
上提高PropertyChanged
,而不必手動通過並在 setter 中提取它?
編輯以澄清一些事情:我確實瀏覽了此處鏈接的線程,並找到了一些東西,但不幸的是它們不適合我的需要。 我真的不需要發送事件,我只需要翻轉一個標志。 此外,該線程已經很老了,我希望可能在 C# 7 中出現一些可以幫助它的東西,我在更新日志中錯過了它。
為什么我不去手動做呢? 好吧,我可能不得不這樣做。 但是我必須聲明“隱藏”變量,自己管理代碼,我希望 MS 會做一些幫助,也許像其他主題中建議的那樣
公共類型名稱 {get; 放; 通知 { () => IsDirty = true; }}
這會很有幫助(忽略它會要求我聲明 get 和 set 的事實,因為它們是抽象的。
添加一個如下所示的方法:
public void Test()
{
if(PropertyChanged != null)
PropertyChanged(new PropertyChangedEventArgs(null));
}
傳遞 null 或空字符串作為屬性名稱告訴消費者所有屬性都已更改。
你可以,但它也有很多工作。 創建一個屬性並在這些屬性上使用它。 在 ViewModel 的基類中,
這將實現 INotifyPropertyChanged,
您在其構造函數中注冊到 PropertyChanged 事件並通過反射檢查更改的屬性是否具有您的屬性,
然后相應地設置 IsDirty。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.