我的WPF应用程序显示了具有某些属性的对象树。可以通过数据绑定从UI修改这些属性。可以添加或删除对象本身。没什么特别的。
问题是:了解对象树中某处的更改的最佳方法是什么?
到目前为止考虑的想法:
INotifyPropertyChanged
并让他们都通知他们的父母有关修改,以便我可以在对象树根上听一个事件TextChanged
,Checked
等控件的事件。它们看起来都像丑陋的网格,所以我害怕实现它们中的任何一个。
答案 0 :(得分:2)
INotifyPropertyChanged可能是最好的方法,因为它允许您从任何根节点冒泡更改通知。我想这也取决于你的类型有多复杂,以及你想要做出哪些改变?
答案 1 :(得分:0)
如果有人对此感兴趣,我最终会从共同的祖先中继承树中的所有对象,这些祖先负责跟踪IsDirty
状态并在对象树中上下推广它。我的意思是如果某个对象被标记为 dirty 那么它的所有父母也被认为是脏的。是的,我在这个常见的超类中实现了INotifyPropertyChanged
以了解这些变化。