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