我有兩個屬性,其中第一個(CalulcatedValue
)必須在第一個(FXRate
)更改時更新。設置員和後臺字段中的.NET邏輯
我可以通過製作CalulcatedValue
ReadOnly,並且只需從FXRate
setter調用OnPropertyChanged("CalculatedValue")
。
public double FXRate {
get { return _fXRate; }
set {
Set(_fXRate, value, "FXRate");
OnPropertyChanged("CaluclatedValue");
}
}
public float CalculatedValue
{
get { return FXRate * SomeOtherValue;}
}
但我知道,CalulcatedValue
財產將被稱爲很多(在幾個LINQ
查詢等使用)。我正在考慮吸氣劑應該很快返回這個價值,並且正在計劃爲它提供一個後盾。
public double FXRate
{
get { return _fXRate;}
set {
Set(_fXRate, value, "FXRate");
CalculatedValue = 0; //how to set CalculatedValue since it's setter is calculating it with its logic, i.e. the value parameter is not needed ?
}
}
private double _fXRate;
public float CalculatedValue
{
get { return _calculatedValue; }
set {
__calculatedValue = FXRate * SomeOtherValue); //consider this line takes some effort to be calculated -> instead of SomeOtherValue there might be pretty complex logic here to get the result
OnPropertyChanged("CalculatedValue");
}
}
private float _calculatedValue;
CalulcatedValue
應該如何設置?它不需要傳遞任何值參數,因爲邏輯在setter中。該生產線
CalulcatedValue = 0
是在愚蠢的事現在會發生。
讓一個不使用'value'的setter是一種典型的代碼味道。只是沒有一個。 – Jcl