调试CommandBinding的CanExecute
-
05-07-2019 - |
题
我有一个用户控件,其中 Button
绑定到 NavigationCommands.RefreshCommand
。该命令的处理程序位于父控件中。处理程序的 CanExecute
如下所示:
e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property
出于某种原因,在我点击窗口之前, Button
将保持禁用状态。
如果我单击按钮
并让它执行(导致 IsConnecting
暂时设置为true),它将正确禁用该按钮,但不会启用按钮,直到我在窗口中引起另一个事件(例如,单击)。
我是否可以使用任何工具或技巧来尝试调试绑定到按钮的命令的CanExecute处理程序?
解决方案
只有在GUI中发生某些事情时,才会调用按钮的CanExecute。由于IsConnecting在后台更改,因此WPF不会更新控件。
强制WPF更新CanExecute调用 <代码> CommandManager.InvalidateRequerySuggested 代码>
不隶属于 StackOverflow