我们的 UI 目前有很多控件,这些控件都绑定了一些复杂的 CanExecute 命令。我们面临的问题是,每当 CommandManager 确定需要重新评估 UI 时,所有命令都会运行 CanExecute,这反过来又导致特定情况下的性能损失。
阅读此帖子:CommandManager.RequerySuggested 如何工作? 看起来,CommandManager 将在简单的按键按下、鼠标移动事件等上重新评估。有没有办法防止这种情况发生,而是在手动调用时重新评估命令管理器?
阅读此帖子:CommandManager.RequerySuggested 如何工作? 看起来,CommandManager 将在简单的按键按下、鼠标移动事件等上重新评估。有没有办法防止这种情况发生,而是在手动调用时重新评估命令管理器?
CanExecute
不应包含任何复杂的功能。也许你可以创建一个布尔变量来告诉你它是否可以执行,并在条件改变时更改此变量? - vesan