我目前正在设计一个我的新项目,并且想知道如何实现我的viewmodel类有INotifyPropertyChanged支持,而不必自己手动编码所有的属性.
我调查了AOP框架,但我认为他们只会用另一个依赖来破坏我的项目.
安装将是这样的:我有一个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发表我的想法作为一个问题,以获得一些反馈,也许一些建议,如何可以做得更好/更容易/更安全.