我的应用程序中有许多控件(用户可以将其添加到画布),每个控件都有不同的属性(主要是依赖属性)。用户可以通过属性网格更改其属性(如颜色、文本等)。
我已经实现了保存功能,所以如果用户在画布上进行任何更改,我们会要求他在离开之前保存文档。目前我正在跟踪类似添加/删除/调整大小的操作(将 IsChanged 标志更改为 true)。我还想跟踪用户所做的任何属性更改,比如他是否通过 propertygrid 更改了控件的颜色。
一种直接的解决方案是为每个属性处理 PropertyChangedCallback 并在其中设置标志。问题在于我必须为每个控件中的每个属性编写 PropertyChangedCallback,同时我必须确保添加的每个新属性都执行相同的操作。
我的问题:有没有其他更好的方法来跟踪财产变化,比如在全球某个地方?