代码之家  ›  专栏  ›  技术社区  ›  alpha-mouse

跟踪对象树中的修改

  •  1
  • alpha-mouse  · 技术社区  · 14 年前

    我的WPF应用程序显示了一个具有某些属性的对象树。可以通过数据绑定从UI修改这些属性。对象本身可以添加或删除。没什么特别的。

    问题是:

    到目前为止考虑的想法:

    • 创建一个静态方法,在每个对象被修改时由其调用
    • 在每个对象类型上创建静态事件并侦听它
    • INotifyPropertyChanged 在每个对象上,让它们都将修改通知其父对象,以便我可以在对象树根上侦听一个事件
    • 从控件中侦听事件,如 TextChanged , Checked 等。

    它们看起来都像丑陋的网格,所以我不敢实现它们中的任何一个。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Matthew Abbott    14 年前

    INotifyPropertyChanged可能是最好的方法,因为它允许您从任何根节点弹出更改通知。我想这也取决于你的类型有多复杂,以及你想对什么样的变化做出反应?

        2
  •  0
  •   alpha-mouse    14 年前

    IsDirty 在物体之树上下陈述和提升它。我是说如果某个物体被标记为 肮脏的 所有的父母都被认为是肮脏的。是的,我实现了 INotifyPropertyChanged 在这个公共超类中要注意变化。