NotifyOfPropertyChange Not Updating

本文关键字:Updating Not NotifyOfPropertyChange | 更新日期: 2023-09-27 17:59:27

我有三个文本框,第一个是Duration,第二个是Amount,第三个是总计,即Duration*Amount。我正在尝试使用NotifyOfPropertyChange而不是OnPropertyChange来实现这一点。我想知道我是否可以得到帮助来解释为什么它没有更新。

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,它就会起作用。

NotifyOfPropertyChange Not Updating

NotifyOfPropertyChanged(一个calburn微概念)需要一个lambda表达式来返回要通知的属性。然后它使用反射来获得实际的字符串。你实际上想这样称呼它:

NotifyOfPropertyChange(() => SebTotal);

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