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,它就会起作用。
NotifyOfPropertyChanged
(一个calburn微概念)需要一个lambda表达式来返回要通知的属性。然后它使用反射来获得实际的字符串。你实际上想这样称呼它:
NotifyOfPropertyChange(() => SebTotal);
您编译的代码可能是因为框架只需要一个object
(String
就是),但随后在反射部分失败(显然)。