【发布时间】:2012-11-02 19:14:41
【问题描述】:
我有一个类(我们称之为MyContainerClass),它是几个其他类的容器(我们称之为ClassA 到ClassF)。 ClassA 到 ClassF 继承同一个基类(我们称之为MyBaseClass)。在MyBaseClass 我有一个名为Count 的int 属性,ClassA 到ClassF 继承。我在MyContainerClass 中还有一个同名的int 属性,它是ClassA 到ClassF 的总和。
然后我有一个数据网格,每一行都有一个MyContainerClass 的对象。网格的列显示ClassA 到ClassF。网格中的最后一列显示总计(即绑定了MyContainerClass 的Count 属性)。现在,我希望在 A-F 范围内的任何类中更改 Count 属性后,最后一列中的总数就会更新。我在MyBaseClass 中实现了INotifyPropertyChanged,当我将ClassA 中的Count 属性更改为ClassF 时,它确实触发了。但是我的数据网格中的最后一列保持不变。有什么线索吗?
编辑: 我创建了一个类图。
getCount() 方法返回 objA.Count+objB.Count+...+objF.Count 并由 MyContainerClass 中的 Count 属性返回。问题是:如果我更新 objA.Count,我希望 GUI(即我的数据网格中的列)显示更新后的总和。
【问题讨论】:
-
你说datagird保持不变,但是属性本身会改变吗?换句话说-您是否检查了
MyContainerClass中的Count属性是否已更新? -
如果您可以为您的课程发布一些 XAML 和一些源代码,那么诊断问题所在会更容易!
-
@Blachshma,它已更新。如果我检查调试器中的对象,我总是会看到正确的数字。只有 GUI 不会更新。
-
@StephenHolt,我必须更改很多代码才能创建一个通用示例。但是我创建了一个类图。我希望这会有所帮助。
标签: wpf data-binding datagrid inotifypropertychanged