0

私の問題は、WPF アプリケーションに相互に依存する 3 つのプロパティがあることです。クラスにも InotifyPropertyChanged を実装しました。other に基づいて 2 番目のプロパティを更新する方法がわかりません。

例:

プロパティ : ActualValue、ChangedValue、Change

ActualValue は Fixed で、ChangedValue と Change を更新できます。つまり、ChangedValue を更新すると、Change は (ActualValue-ChangedValue) のように計算されて設定されます。Change が更新されると、ChangedValue は ActualValue と Change に基づいて計算されます。

4

1 に答える 1

1

他の人が依存するプロパティのセッター内にロジックを配置できます。これは循環依存であるため、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");
    }
}
于 2012-05-17T04:33:26.477 に答える