0

我有两个公式。

a = sqrt ( b )

它是相反的

b = a ^ 2

我想要两个编辑框,其中一个编辑框中的 a 值和另一个编辑框中的 b 值。如果我手动编辑任一编辑框,则另一个将根据上述公式进行更新。为了使问题更棘手,编辑框应限制为仅显示两位小数,并且只有在按下回车键或失去对当前正在编辑的文本框的焦点后才能激活另一个文本框的更新。也应该不可能在其中输入无效值(无数字)。

单独每个小块似乎都不是问题,但是将所有要求捆绑在一起,我就是无法理解。

注意 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 回答