使用MVVM Light創建項目。這是常見的的ViewModels有很多看起來像這樣更好的方法來提高屬性更改MVVMLight
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
做Set(ref _Prop,value);包括if(_Prop!= value)? – gts13
@ gts13:我認爲它確實如此。 – dotNET