1

隧道 CommandBinding.previewcanexecute 事件有什么用?

并冒泡 CommandBinding.canexecute 事件??有什么用

4

1 回答 1

0

隧道和冒泡事件允许处理程序在多个元素之间共享,并被层次结构中更高的控件拦截。例如,给定以下 Xaml:

<StackPanel>
   <Button Command="MyCommand" />
   <Button Command="MyCommand" />
   <Button Command="MyCommand" />
   <Button Command="MyCommand" />
</StackPanel>

如果我想定义一个CommandBindingMyCommand影响所有按钮的,我可以在StackPanel. 当每个按钮尝试执行其命令时,事件将向上冒泡到StackPanel- 这意味着我们只需要一个处理四个按钮的处理程序。如果我在根Window级别放置一个处理程序,它将应用于我的应用程序中的每个按钮。

相反,隧道事件允许您在它到达触发它的控件之前拦截它。因此,例如,如果我想为整个.WindowCanExecutefalse

于 2012-08-01T14:50:16.497 回答