调试的CommandBinding的CanExecute [英] Debugging CommandBinding's CanExecute
问题描述
我有一个按钮
绑定到 NavigationCommands.RefreshCommand
用户控件。该处理程序命令在父控件。该处理程序的 CanExecute
是这样的:
I have a user control with a Button
bound to the NavigationCommands.RefreshCommand
. The handler for the command is in the parent control. The handler's CanExecute
looks like this:
e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property
由于某些原因,在按钮
将保持禁用,直到我点击窗口。
For some reason, the Button
will remain disabled until I click on the window.
如果我点击按钮
,并得到它来执行(这会导致 IsConnecting
来临时设置为true)那么它会正确地关闭按钮,但不会启用按钮,直到我造成另一个事件窗口(如点击)。
If I click the Button
and get it to execute (which causes IsConnecting
to temporarily be set to true) it will then disable the button correctly, but won't enable the button until I cause another event in the window (eg. a click).
是否有任何工具或技巧,我可以用它来尝试调试它绑定到一个按钮命令的CanExecute处理?
推荐答案
当事情发生在GUI按钮的CanExecute只调用。由于IsConnecting改变在后台然后WPF不更新控制
The button's CanExecute is only called when something happens in the GUI. Since the IsConnecting changes in the background then WPF doesn't update the control.
要强制WPF更新CanExecute呼叫<一href="http://msdn.microsoft.com/en-us/library/system.windows.input.commandmanager.invalidaterequerysuggested.aspx"相对=nofollow> CommandManager.InvalidateRequerySuggested
To force WPF to update the CanExecute call CommandManager.InvalidateRequerySuggested
这篇关于调试的CommandBinding的CanExecute的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!