我有一堂课(我们称之为MyContainerClass
)这是其他几个类的容器(我们称它们为ClassA
to ClassF
). ClassA
to ClassF
继承相同的基类(我们称之为MyBaseClass
). In MyBaseClass
我有一个名为 int 的属性Count
, 哪个ClassA
to ClassF
继承。我还有一个同名的 int 属性MyContainerClass
这是ClassA
to ClassF
.
然后我有一个数据网格,每一行都有一个对象MyContainerClass
。网格的列显示ClassA
to ClassF
。网格中的最后一列显示总计(即它绑定了Count
的财产MyContainerClass
)。现在我希望一旦我更改最后一列中的总数即可更新Count
A-F 范围内任何级别的属性。我实现了 INotifyPropertyChangedMyBaseClass
当我改变它时它会触发Count
财产在ClassA
to ClassF
。但我的数据网格中的最后一列保持不变。有什么线索吗?
EDIT:
I have created a class diagram.
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
and MyContainerClass
,您将数据网格绑定到此包装类的集合)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)