代码之家  ›  专栏  ›  技术社区  ›  akjoshi HCP

在全局级别跟踪依赖项属性值的更改

  •  0
  • akjoshi HCP  · 技术社区  · 14 年前

    我的应用程序中有许多控件(用户可以添加到画布),每个控件都有不同的属性(主要是依赖属性)。用户可以通过属性网格(如颜色、文本等)更改其属性。

    我已经实现了保存功能,所以如果用户在画布上做了任何更改,我们会要求他在离开之前保存文档。目前我正在跟踪添加/删除/调整大小等操作(将IsChanged标志更改为true)。我还想跟踪用户所做的任何属性更改,比如他是否通过propertygrid更改控件的颜色。

    一个简单的解决方案是为每个proeprity处理PropertyChangedCallback并在其中设置标志。问题是,我必须为每个控件中的每个proeprity编写PropertyChangedCallback,同时必须确保添加的每个新proeprity都执行相同的操作。

    有没有其他更好的方法来追踪房地产的变化,比如在全球某个地方?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Kieren Johnstone    14 年前

    如果您的对象/类是DependencyObjects,您可以创建自己的“基类”,该基类派生自DependencyObject,它覆盖OnPropertyChanged:

    http://msdn.microsoft.com/en-us/library/system.windows.dependencyobject.onpropertychanged.aspx

    然后更改所有对象以实现这个新类,而不是DependencyObject,当任何属性更改时,您的代码将被调用。

    希望有帮助!

    推荐文章