我目前正在設置我的一個新項目,並想知道如何實現我的ViewModel類具有INotifyPropertyChanged支持,同時不需要自己手動編碼所有屬性。通過T4代碼生成實現自動INotifyPropertyChanged實現?
我看着AOP框架,但我認爲他們會炸燬我的項目與另一個依賴項。
所以我想到用T4生成屬性實現。
設置將是這樣的:我有一個ViewModel類,聲明它的屬性背景變量,然後使用T4從它生成屬性實現。
例如,這將是我的ViewModel:
public partial class ViewModel
{
private string p_SomeProperty;
}
然後T4會超過源文件,查找名爲「P_」成員聲明,併產生一個像這樣的文件:
public partial class ViewModel
{
public string SomeProperty
{
get
{
return p_SomeProperty;
}
set
{
p_SomeProperty= value;
NotifyPropertyChanged("SomeProperty");
}
}
}
這種方法有一些優點,但我不確定它是否真的能起作用。所以我想在StackOverflow上發佈我的想法,作爲一個問題來獲得一些反饋意見,也許有人建議如何做到更好/更容易/更安全。
我覺得自己像一個白癡,但我不知道T4是什麼,直到我只是因爲這個問題而使用它。我不敢相信這不是更多的討論! – BFree 2010-06-03 18:27:00
我也是。我從一年前的C#預處理器線程(http://stackoverflow.com/questions/986404/does-a-c-preprocessing-tool-exist)得到了這裏。衛生署。 – lo5 2010-06-04 09:30:17
另請參閱http://stackoverflow.com/questions/1315621/implementing-inotifypropertychanged-does-a-better-way-exist – 2011-06-01 11:38:51