使用 MVVM Light 创建了一个项目。在 ViewModel 中经常会有很多类似以下代码的属性:
class TestModel
{
public string DisplayValue { get; set; }
}
class TestViewModel : ViewModelBase
{
public string DisplayValue
{
private TestModel model = new TestModel();
get
{
return model.DisplayValue;
}
set
{
if (model.DisplayValue != value)
{
model.DisplayValue = value;
RaisePropertyChanged();
}
}
}
}
有时属性并不在模型中,而是由本地私有字段支持。这种方法可以正常工作,但存在大量样板代码的问题。如何减少代码重复?
除了我提出的解决方案之外,是否有更好的解决方案或者MVVM Light中有我错过的功能?
nameof(Prop)
,其中一个重载使用了CallerMemberName
,所以set { ref _Prop, value); }
将产生相同的结果。 - Adam