現在、WindowsPhone用の測定単位変換アプリを作成しています。ユーザーインターフェイスを設定した後、2つのテキストボックスにデータバインディングを追加しました。各テキストボックスには測定値が表示されます。(例:華氏<->摂氏)
ここまでは順調ですね。ただし、アプリをデプロイすると、循環依存に遭遇します。一方の値を更新するたびに、変換関数が呼び出され、もう一方の単位が更新されます。したがって、その値が設定され、変換関数が再度実行されます。
この依存関係を回避するにはどうすればよいですか?実際のプログラミングというよりは概念的なものだと思います。ありがとう
サンプルコード
private float _fahrenheit;
private float _celsius;
public float Fahrenheit {
get { return _fahrenheit; }
set {
_fahrenheit = value;
FahrenheitToCelsius();
}
}
public float Celsius
{
get { return _celsius; }
set
{
_celsius = value;
CelsiusToFahrenheit();
}
}
private void CelsiusToFahrenheit()
{
Fahrenheit = _celsius * 1.8f + 32.0f;
}
private void FahrenheitToCelsius()
{
Celsius = ((_fahrenheit - 32.0f) * 5.0f) / 9.0f;
}