我正在使用 WPF 和 MVVM,因此我的视图模型中有很多属性绑定到视图中的内容。这些属性中的大多数看起来像这样......
private DateTime _newRevisionDate = DateTime.Now;
public DateTime NewRevisionDate {
get {
return _newRevisionDate;
}
set {
if (_newRevisionDate != value) {
_newRevisionDate = value;
RaisePropertyChanged(ViewModelUtils.GetPropertyName(() => NewRevisionDate));
}
}
}
我正在使用 MvvmLight,这是 RaisePropertyChanged() 方法的来源,并且使用了 ViewModelUtils.GetPropertyName() 方法从属性名称创建字符串,从而避免了对魔术字符串的需要。
现在的问题是,如果我在视图模型中添加一些这样的属性,我最终会得到大量几乎相同的代码。这只是需要一些巧妙的重构,所以我可以只使用一行代码来定义每个属性。
但是,我还没有找到任何方法来做到这一点。能够做一些像标准 C# 自动属性这样的事情会很好......
public DateTime NewRevisionDate { get; set; }
...但是只要将属性设置为新值,就让它调用 RaisePropertyChanged() 。
有人有什么想法吗?谢谢