Pet*_*ter 5 data-binding wpf datagrid inotifypropertychanged
我有一个类(我们称之为MyContainerClass)是对其他几类的容器(让我们称他们ClassA到ClassF)。ClassA要ClassF继承相同的基类(姑且称之为MyBaseClass)。在MyBaseClass我有名字一个int属性Count,这   ClassA对ClassF继承。我也有一个同名的int属性,MyContainerClass它是ClassAto 的总和ClassF。
然后我有一个数据网格,每一行都有一个对象MyContainerClass。网格的列显示ClassA为ClassF。网格的最后一列显示总计(即,其Count属性为MyContainerClass)。现在,我希望Count在AF范围内的任何类别中更改属性后,最后一列的总数都会更新。我实现INotifyPropertyChanged的中MyBaseClass,当我改变它火Count属性中   ClassA来ClassF。但是我的数据网格中的最后一列保持不变。有什么线索吗?
编辑: 
我创建了一个类图。
getCount()方法返回objA.Count + objB.Count + ... + objF.Count,并由中的Count属性返回MyContainerClass。问题是:如果我更新objA.Count,我希望GUI(即我的数据网格中的列)显示更新后的总和。
INotifyPropertyChanged对于自动更新来说,仅仅实施是不够的。该对象需要“订阅”其他列中对象MyContainerClass的更改通知。MyBaseClass处理此问题的一种方法是将如下方法添加到MyContainerClass:
void SubscribeToCount(MyBaseClass item)
{
    item.PropertyChanged += (s,e) => 
        this.Sum += (e.NewValue - e.OldValue); 
}
您可以为其他列中的所有对象调用此方法。(问题并不清楚,但我假设有一个包装类,其中包含MyClassA-F和的实例MyContainerClass,您将数据网格绑定到该包装类的集合)。  
| 归档时间: | 
 | 
| 查看次数: | 3484 次 | 
| 最近记录: |