我有許多實現INotifyPropertyChanged接口的模型類,以便在值更改時更新UI。INotifyPropertyChanged-自動屬性上的功能
不幸的是,必須完全寫入屬性才能支持此功能。我通過在BaseClass中使用'SetPropertyValue'-Method()來減少我的代碼。
private string _title;
public string Title
{
get { return title; }
set { SetPropertyValue("Title", ref _title, value); }
}
但隨着這樣寫的是20個物業在一個文件也不是那麼簡單的理解文件在很短的時間內容不同的自動實現的屬性。
我想要的是寫我的財產是這樣的:
[NotifyChanged]
public string Title { get; set; }
我已經檢查PostSharp但在免費版本只有10個班包括(這是一個愛好的項目,所以我不希望支付很多錢)。
有沒有可能將我的一個邏輯附加到C#-Compiler(作爲預編譯器)? 我希望在我的代碼的不同位置使用這樣一個特性,以減少不必要的編碼行(特別是對於自動屬性)。
or maye a VisulStudio-Extension?
如果/在做MVVM時,您可能想重新考慮將視圖綁定到模型。視圖應該只知道ViewModel。所以應該實現INotifyPropertyChanged的ViewModel –
是的,有很多方法。搜索引擎旨在幫助您找到它們。然而,要求SO上的鏈接是特別禁止的。 – Will
我只想指出PostSharp'[NotifyPropertyChanged]'不是一個簡單的實現。每次屬性更改時都不會引發通知,但僅當控件離開對象的方法時纔會引發通知。這有兩個好處。首先是表現;當您進行更復雜的更改時,某些屬性會多次更改。如果您有其他對象觀察這些屬性並執行不重要的計算,則性能會受到影響。其次是原子性;如果您有改變對象狀態的方法,通知並不總是以對象的有效狀態觸發。 –