【发布时间】:2010-05-17 09:35:14
【问题描述】:
首先我将解释问题的背景,因为您也许可以为我指明一个更好的方向。
我需要在对象上实现类似撤消重做的系统。该对象具有一系列依赖属性。有些是 double、int、string,但有些也是 DependencyObject 类型。 我需要在更改之前保存属性的值,为此我添加了 CoerceValueCallback。
public static readonly DependencyProperty MyBackgroundProperty =
DependencyProperty.Register("MyBackground", typeof(MyCustomizableBackground),
typeof(MyComponent), new UIPropertyMetadata(default(MyCustomizableBackground), null, new CoerceValueCallback(OnPropertyChanging)));
在 OnPropertyChanging 中,我保存了更改之前的值。 MyCustomizableBackground 是 DependencyObject,它也有一些依赖属性。
问题是在这种情况下,我有一个自定义对象作为属性,OnPropertyChanging 方法没有被触发,但是当我有一个通用类型时,它被触发了。
后来编辑:我意识到我的部分问题很模棱两可,我问了一个单独的问题here。对于问题的第一部分,Julien 为我指明了一个更好的方向。
【问题讨论】:
标签: wpf dependency-properties coerce