【问题标题】:Can Execute of a ICommand while a Context menu open可以在上下文菜单打开时执行 ICommand
【发布时间】:2013-08-09 17:08:05
【问题描述】:

一个控件有它的ContextMenu,它的MenuItem 绑定到一个ICommand。 ICommand 的 Can Execute 有一些代码可以启用和禁用MenuItem。这会在加载并检查 Can Execute 时命中,但在打开 ContexMenu 时会命中,并且每次打开 ContextMenu 时都需要命中(检查)。

<Border>
    <Border.ContextMenu> 
       <ContextMenu> 
           <MenuItem Command="{Binding SaveCommand, Source={StaticResource vm}}" CommandParameter="{Binding}" Header="Menu1" />
       </ContextMenu> 
    </Border.ContextMenu>
</Border>

怎么可能做到这一点。有什么想法吗?

【问题讨论】:

  • @PoweredByOrange: 请检查上面的代码

标签: wpf contextmenu icommand canexecute


【解决方案1】:

您应该从 ViewModel 触发事件 ICommand.CanExecuteChanged(),这将导致 Control 从 ViewModel 调用 CanExecute。

【讨论】:

  • 这可能行得通,但在我的情况下是行不通的.. 任何通用的方法来实现这一点?
  • 这里缺少一些信息:你什么时候调用CanExecuteChanged? @Sankarann 希望在上下文菜单打开时对其进行评估(我也是如此)。
猜你喜欢
  • 2013-08-15
  • 2013-01-21
  • 1970-01-01
  • 2020-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多