2

我有一个Button绑定到NavigationCommands.RefreshCommand. 该命令的处理程序位于父控件中。处理程序CanExecute看起来像这样:

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

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

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

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

4

1 回答 1

4

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

强制 WPF 更新 CanExecute 调用CommandManager.InvalidateRequerySuggested

于 2009-11-27T07:47:06.360 回答