【发布时间】:2016-01-28 10:12:04
【问题描述】:
我正在尝试为很多类实现 INotifyPropertyChanged,并且这些类中的每一个都有很多很多属性。我一直在关注这个MSDN documentation 以了解如何实现 INofifyPropertyChanged,但是在类具有许多属性的情况下,它们的说明似乎并不实用。
目前我的大部分房产都使用速记:
public DateTime? DateClosed { get; set; }
但是文档说我需要在每个 setter 方法中添加以下内容:
// Call OnPropertyChanged whenever the property is updated
OnPropertyChanged("DateClosed");
这意味着我需要为 get 方法声明一个主体并声明私有变量来处理属性的实际获取和设置。像这样:
private DateTime? _dateOfIncident = null;
public DateTime? DateClosed
{
get { return _dateOfIncident; }
set
{
_dateOfIncident= value;
// Call OnPropertyChanged whenever the property is updated
OnPropertyChanged("DateClosed");
}
}
有人知道解决这个问题的方法吗?
【问题讨论】:
-
正则搜索替换,T4模板,代码sn-ps,你试过什么?我的意思是你不是第一个遇到这种情况的人。 :)
-
您对正确的问题发表了评论吗?我不知道正则表达式和 T4 模板与这个大声笑有什么关系。我没有真正尝试过任何事情,因为除了 setter 之外,在其他任何地方调用 OnPropertyChanged() 似乎都没有意义。但同时我不想仅为 getter 和 setter 创建所有这些私有属性
-
@user3653277 是的,CodeCaster 评论了正确的问题。 T4 模板允许生成 C# 代码,并由 Visual Studio 编译生成的代码。正则表达式是生成 C# 代码的一种可能的简单方法。
标签: c# .net winforms inotifypropertychanged