0

私には2つの公式があります。

a = sqrt ( b )

そしてそれは逆です

b = a ^ 2

1つの編集ボックスにaの値があり、もう1つの編集ボックスにbの値がある2つの編集ボックスが必要です。どちらかの編集ボックスを手動で編集すると、もう一方は上記の式に従って更新されます。問題をより複雑にするために、編集ボックスは小数点以下2桁のみを表示するように制限し、他のテキストボックスの更新は、Enterキーを押すか、編集中の現在のテキストボックスにフォーカスを失った後にのみアクティブにする必要があります。また、に無効な値(数値なし)を入力することはできません。

個々の小さな部分は問題ではないようですが、すべての要件を結び付けると、頭を動かすことができません。

aとbの値は、一部のオブジェクトのデータバインドプロパティである必要があることに注意してください。

4

1 に答える 1

0

デュアル アップデートが問題の原因である場合。

private double? a;
private double? b;
public double? A
{
    get
    {
        return a;
    }
    set
    {
        if (a == value) return;
        a = value;
        if (a == null) b = null; else b = a * a;
        NotifyPropertyChanged("A");
        NotifyPropertyChanged("B");
    }
}

public double? B
{
    get
    {
        return b;
    }
    set
    {
        if (b == value) return;
        b = value;
        if (b == null) b = null; else a = Math.Sqrt((double)b);
        NotifyPropertyChanged("A");
        NotifyPropertyChanged("B");
    }
}
于 2012-09-10T21:13:42.007 に答える