我想知道如何最好地实现以下功能。假设一个应用程序有一个菜单。创建应用程序时,会创建此菜单。每个 MenuItem 都包含一个特定的命令。执行某些命令时,应禁用某些菜单项。反之亦然,当执行另一个命令时,可以执行。实现此行为的最佳方法是什么?我看到几个选项:
- 执行链接。也就是说,使 IsEnabled 属性依赖。每次目标属性发生变化时,依赖属性也会发生变化(我个人是这样理解绑定机制的)
- 创建一个 MenuItemAccessChanged 事件,在处理该事件时强制更新所有菜单项
我想知道如何最好地实现以下功能。假设一个应用程序有一个菜单。创建应用程序时,会创建此菜单。每个 MenuItem 都包含一个特定的命令。执行某些命令时,应禁用某些菜单项。反之亦然,当执行另一个命令时,可以执行。实现此行为的最佳方法是什么?我看到几个选项:
最好的方法是通过命令。
当您将 bind 绑定
MenuItem
到命令时,其启用/禁用状态会自动绑定到CanExecute
您的命令。因此,您可以在一个命令的持续时间内关闭其余部分,然后重新打开它们,只需在您的实现中设置此属性即可
ICommand
。