NotifyOfPropertyChange未更新

时间:2014-04-22 18:14:09

标签: c# wpf

我有3个文本框,第一个是持续时间,SEcond是金额,第三个是总数,只是持续时间*金额。我正在尝试使用OnPropertyChange的NotifyOfPropertyChange INSTEAD来实现它。我想知道我是否可以帮助解决为什么它没有更新。

public int? SebDuration
{
    get
    {
        return _seb.SEBDuration;
    }
    set
    {
        _seb.SEBDuration = value;
        NotifyOfPropertyChange("SebDuration");
        NotifyOfPropertyChange("SebTotal");
    }
}
public decimal? SebAmountPer
{
    get
    {
        return _seb.SEBAmountPer;
    }
    set
    {
        _seb.SEBAmountPer = value;
        NotifyOfPropertyChange("SebAmountPer");
        NotifyOfPropertyChange("SebTotal");
    }
}
 public decimal? SebTotal
{
    get
    {
        if (_seb.SEBTotal.HasValue)
        {
            return _seb.SEBTotal;
        }
        if (SebAmountPer.HasValue && SebDuration.HasValue)
        {
            return SebAmountPer.Value * SebDuration.Value;
        }
        return null;
    }
    set
    {
        if (_seb.SEBTotal != value)
        {
            _seb.SEBTotal = value;
            NotifyOfPropertyChange("SebTotal");
        }
    }
}

如果我用OnPropertyChanged替换每个NotifyOfPropertyChange,它将起作用。

1 个答案:

答案 0 :(得分:0)

NotifyOfPropertyChanged(一个校准微观概念)期望一个lambda表达式返回要通知的属性。然后它使用反射来获取实际的字符串。你真的想这样称呼它:

NotifyOfPropertyChange(() => SebTotal);

您可能编译的代码因为框架只需要objectString是),但在反射部分失败(显然)。