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

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

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

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

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

有帮助吗?

解决方案

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

强制WPF更新CanExecute调用 <代码> CommandManager.InvalidateRequerySuggested

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top