Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 路由命令传播策略_Wpf_Routed Commands - Fatal编程技术网

Wpf 路由命令传播策略

Wpf 路由命令传播策略,wpf,routed-commands,Wpf,Routed Commands,我是WPF的新手,正在尝试取消发送路由命令。 RoutedCommands从命令源开始,然后通过气泡和隧道传播事件 但是我可以停止这个过程吗?例如,我希望设置CanExecute=false,然后停止事件传播 谢谢你的帮助 我想当CanExecute-处理程序将CanExecute设置为false时,您试图阻止RoutedCommand在可视化树中冒泡?如果是,请尝试以下操作: 设置e.Handled=true。确保CommandTarget设置正确,以便真正调用CanExecute-处理程序。

我是WPF的新手,正在尝试取消发送路由命令。 RoutedCommands从命令源开始,然后通过气泡和隧道传播事件

但是我可以停止这个过程吗?例如,我希望设置CanExecute=false,然后停止事件传播


谢谢你的帮助

我想当
CanExecute
-处理程序将
CanExecute
设置为
false
时,您试图阻止
RoutedCommand
在可视化树中冒泡?如果是,请尝试以下操作:

设置
e.Handled=true
。确保
CommandTarget
设置正确,以便真正调用
CanExecute
-处理程序。 如果将命令放在
上下文菜单中,这一点很重要。如果未指定任何
CommandTarget
,则WPF将获取焦点元素,并且不会始终调用您的
CanExecute
-处理程序,因此可能会由另一个处理程序进行解释。 类似于以下内容的操作将完成此工作:

 <ContextMenu>
  <MenuItem Command="DesiredCommand" CommandTarget="{Binding PlacementTarget,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ContextMenu}}" .../>
  ...
 </ContextMenu/>

...