调试CommandBinding的CanExecute

时间:2009-11-27 07:30:59

标签: .net wpf button commandbinding

我有一个Button绑定到NavigationCommands.RefreshCommand的用户控件。该命令的处理程序位于父控件中。处理程序的CanExecute如下所示:

e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property

出于某种原因,在我点击窗口之前,Button将保持禁用状态。

如果我单击Button并让它执行(导致IsConnecting暂时设置为true),它将正确禁用该按钮,但在我导致之前不会启用该按钮窗口中的另一个事件(例如点击)。

我是否可以使用任何工具或技巧来尝试调试绑定到按钮的命令的CanExecute处理程序?

1 个答案:

答案 0 :(得分:4)

只有在GUI中发生某些事情时,才会调用按钮的CanExecute。由于IsConnecting在后台更改,因此WPF不会更新控件。

强制WPF更新CanExecute调用CommandManager.InvalidateRequerySuggested