Wpf 基于属性更新另一个属性,反之亦然

Wpf 基于属性更新另一个属性,反之亦然,wpf,dependency-properties,inotifypropertychanged,Wpf,Dependency Properties,Inotifypropertychanged,我的问题是我在WPF应用程序中有三个相互依赖的属性。我还为类实现了InotifyPropertyChanged。我不知道如何根据其他属性更新第二个属性 示例: 属性:ActualValue、ChangedValue、Change 实际值是固定的,可以更新ChangedValue和Change。这意味着,如果我更新ChangedValue,则会像(ActualValue ChangedValue)一样计算更改并设置。当Change更新时,ChangedValue将基于ActualValue和Cha

我的问题是我在WPF应用程序中有三个相互依赖的属性。我还为类实现了InotifyPropertyChanged。我不知道如何根据其他属性更新第二个属性

示例:

属性:ActualValue、ChangedValue、Change


实际值是固定的,可以更新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,因为您每次都修改了这两个值。这很有意义!这很有帮助。我错过了一些基础知识