【发布时间】:2011-02-11 11:35:11
【问题描述】:
我有一个名为DataStore 的班级和一个Departments 的列表(ObservableCollection),每个部门又有一个Products 的列表。
Product 类中更改的属性也会影响Department 和DataStore 类中的属性。每个Product 如何通知它所属的Department 和DataStore(它是所有的母类)它的一个或多个属性已经改变了它们的值?
例子:
产品具有 NumberSoldToday 属性并已绑定。该部门有一个名为 TotalNumberOfProductsSold 的属性:
public int TotalNumberOfProductsSold
{
get
{
int result = 0;
foreach(Product p in this.products)
result += p.NumberSoldToday;
return result;
}
}
并且数据存储有一个属性 TotalProductsSold(适用于所有部门):
public int TotalProductsSold
{
get
{
int result = 0;
foreach(Product p in this.deparments)
result += p.TotalNumberOfProductsSold;
return result;
}
}
如果所有这些属性都被绑定,并且最里面的属性发生变化,它必须以某种方式通知其他 2 的值也发生了变化。 怎么样?
我能看到这种情况发生的唯一方法是在每个类中连接 PropertyChanged 事件。删除时也必须触发该事件,分别添加到产品和部门的集合中。
有没有更好、更聪明的方法来做到这一点?
【问题讨论】:
标签: .net wpf data-binding inotifypropertychanged