我的问题是我在WPF应用程序中有三个相互依赖的属性。我也为这个类实现了InotifyPropertyChanged。我不知道如何根据其他属性更新第二个属性。
示例:
属性:ActualValue,ChangedValue,Change
ActualValue已修复,可以更新ChangedValue和Change。这意味着如果我更新ChangedValue,则更改的计算方式与(ActualValue-ChangedValue)相同并设置。当Change更新时,ChangedValue将根据ActualValue和Change。
计算答案 0 :(得分:1)
您可以将逻辑放在其他人所依赖的属性的setter中。因为它是循环依赖,所以只需确保在setter中更改私有变量 - 不要使用属性setter,因为这将创建一个无限循环。像这样:
private string _change, _changedValue;
public string ChangedValue {
set {
_changedValue = value;
_change = ActualValue - _changedValue;
NotifyPropertyChanged("ChangedValue");
NotifyPropertyChanged("Change");
}
}
public string Change {
set {
_change = value;
_changedValue = ActualValue - _change;
NotifyPropertyChanged("Change");
NotifyPropertyChanged("ChangedValue");
}
}