可以在上下文菜单打开时执行 ICommand
Posted
技术标签:
【中文标题】可以在上下文菜单打开时执行 ICommand【英文标题】:Can Execute of a ICommand while a Context menu open 【发布时间】: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: 请检查上面的代码 【参考方案1】:您应该从 ViewModel 触发事件 ICommand.CanExecuteChanged(),这将导致 Control 从 ViewModel 调用 CanExecute。
【讨论】:
这可能行得通,但在我的情况下是行不通的.. 任何通用的方法来实现这一点? 这里缺少一些信息:你什么时候调用CanExecuteChanged? @Sankarann 希望在上下文菜单打开时对其进行评估(我也是如此)。以上是关于可以在上下文菜单打开时执行 ICommand的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序未打开时,可以在 Firebase 消息服务中完成哪些任务?