【发布时间】:2021-10-10 07:56:18
【问题描述】:
我在工作中使用Breeze.Sharp.BaseEntity 基类已经有一段时间了,到目前为止,我还可以使用它们的GetValue 和SetValue 属性插入INotifyPropertyChanged 接口。但是,有时,从单个属性一次通知多个属性的更改是有利的。让我举个简单的例子。
假设我们要执行一个简单的求和。我们有一个ItemAmount 属性、一个ItemQuantity 属性和一个Total 属性。每次ItemAmount 或ItemQuantity 属性值发生变化时,我们也希望更新总数。传统上,我们可以这样做:
public double ItemAmount
{
get { return _itemAmount; }
set
{
_itemAmount = value;
NotifyPropertyChanged("ItemAmount");
NotifyPropertyChanged("Total");
}
}
public int ItemQuantity
{
get { return _itemQuantity; }
set
{
_itemQuantity = value;
NotifyPropertyChanged("ItemQuantity");
NotifyPropertyChanged("Total");
}
}
public double { get => ItemAmount * ItemQuantity; }
这将使框架也根据需要更新Total 属性的值作为任一属性的更改。但是,我找不到使用它们的基类调用INotifyPropertyChanged 接口的方法,令人难以置信的是,它们似乎隐藏了对其实现的访问权限。
所以,我的问题是如何在使用Breeze.Sharp.BaseEntity 类时手动通知框架属性更改?
有什么方法可以连接到我还没有解决的实现吗?当我添加自己的实现时,它似乎没有与框架连接,也没有成功通知更改。非常感谢。
【问题讨论】:
标签: c# inotifypropertychanged breeze-sharp