我目前正在设置我的一个新项目,并想知道如何实现我的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