Wpf 基于属性更新另一个属性,反之亦然
我的问题是我在WPF应用程序中有三个相互依赖的属性。我还为类实现了InotifyPropertyChanged。我不知道如何根据其他属性更新第二个属性 示例: 属性:ActualValue、ChangedValue、ChangeWpf 基于属性更新另一个属性,反之亦然,wpf,dependency-properties,inotifypropertychanged,Wpf,Dependency Properties,Inotifypropertychanged,我的问题是我在WPF应用程序中有三个相互依赖的属性。我还为类实现了InotifyPropertyChanged。我不知道如何根据其他属性更新第二个属性 示例: 属性:ActualValue、ChangedValue、Change 实际值是固定的,可以更新ChangedValue和Change。这意味着,如果我更新ChangedValue,则会像(ActualValue ChangedValue)一样计算更改并设置。当Change更新时,ChangedValue将基于ActualValue和Cha
实际值是固定的,可以更新ChangedValue和Change。这意味着,如果我更新ChangedValue,则会像(ActualValue ChangedValue)一样计算更改并设置。当Change更新时,ChangedValue将基于ActualValue和Change进行计算。您可以将逻辑放在其他人依赖的属性设置器中。由于它是一个循环依赖项,只需确保在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");
}
}
您还需要在“ChangeValue”和“Change”的两个设置器中添加RaisePropertyChanged事件,以便在任何数据绑定中更新这两个事件。您需要在两个设置器中提高ChangeValue和Change,因为您每次都修改了这两个值。这很有意义!这很有帮助。我错过了一些基础知识