【问题标题】:RoutedCommands propagation strategyRoutedCommands 传播策略
【发布时间】:2013-05-27 09:58:06
【问题描述】:

我是 WPF 的新手,正在尝试解开 RoutedCommands。 RoutedCommands 从命令源开始,比事件传播 vua 冒泡和隧道。

但是我可以停止这个过程吗?例如,我想设置 CanExecute = false 而不是停止事件传播。

感谢您的帮助!

【问题讨论】:

    标签: wpf routed-commands


    【解决方案1】:

    我想当你的CanExecute-Handler 将CanExecute 设置为false 时,我想你试图阻止RoutedCommand 冒泡可视化树?如果是,请尝试以下操作:

    设置e.Handled = true。确保CommandTarget 设置正确,以便真正调用您的CanExecute-Handler。 如果您将命令放在ContextMenu 中,这很重要。如果未指定 CommandTarget,WPF 将采用焦点元素,并且您的 CanExecute-Handler 不会总是被调用,因此可能会被另一个处理程序解释。 像下面这样的东西可以完成这项工作:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多