我有一個屬性A,B,C和D的視圖模型。其中D是A,B和C的總和。因此,無論何時發生這些更改,我都希望D被更新。我知道我可以通過觀察在A,B,C的PropertyChanged事件,然後設定值d,這樣做:MVVM ViewModel級聯屬性
public MyViewModel()
{
this.PropertyChanged += ViewModelPropertyChanged;
}
private void ViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
{
// Track changes to update sum
if (e.PropertyName == "A" || e.PropertyName == "B" || e.PropertyName == "C")
{
D = A + B + C;
}
}
但我不知道是否有更優雅或存在更多的自動化?
更新此項以添加屬性的示例。我正在使用封裝邏輯的框架:是不同的,並引發屬性更改事件。
private int _A;
public int A
{
get { return _A; }
set { RaiseAndSetIfChanged(ref _A, value); }
}
更新#2:有沒有人有一個如何使用ReactiveUI實現的例子?
我認爲你應該考慮https://github.com/reactiveui/ReactiveUI/blob/master/ReactiveUI/ObservableAsPropertyHelper.cs –
反應過去了我的想法。你有沒有任何示例代碼@jmelosegui? –