在WPF中,获取依赖项属性的Preview PropertyChanged通知的最佳方法是什么?

时间:2011-04-15 16:06:00

标签: wpf event-handling dependency-properties change-notification

据我所知,没有'PreviewPropertyChanged'你可以订阅依赖属性,但我需要知道一个值将会改变。我的想法是重新定位Coerce Value方法并在那里进行检查(自然在任何实际强制发生之后,因为它会在实际更改发生之前调用sens。这样我可以检查现有值与强制值以确定更改,如果有更改,则触发我的预览'代码。这是正确的方法,或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

你明白了。 CoerceValueCallback是引发“XXXChanging”事件的好方法,它为对象的消费者提供更改以更改值或取消更改。然后,您的强制将返回新值或修改后的值。您可以直接从DependencyObject获取旧值,因为它不包含在CoerceValueCallback参数中。

另一方面,“预览”事件是隧道事件。这意味着它们从树顶向下移动。冒泡事件从下往上。因此我会避免将其称为PreviewPropertyChanged,因为这意味着该属性已经更改并且它是一个隧道事件。