在某些情况下(我无法建立模式),执行就会结束
System.Windows.Input.CommandManager.InvalidateRequerySuggested();
var can = GlobalCommands.UpdateWindowTitle.CanExecute(title, null);
GlobalCommands.UpdateWindowTitle.Execute(title, null);,而不输入CanExecute或执行方法。变量"can“为false (不执行CanExecute),且该命令从不触发。但有时它会像预期的那样起作用。
以下是创建和绑定命令的方式:
var updateTitleBinding = new CommandBinding(GlobalCommands.UpdateWindowTitle, UpdateWindowTitle, CanUpdateWindowTitle);
CommandManager.RegisterClassCommandBinding(typeof(System.Windows.Window), updateTitleBinding);我不能用
Application.Current.MainWindow.CommandBindings.Add(
new CommandBinding(_addCommand, ExecuteAddCommand, CanExecuteAddCommand));因为调用类不是可视元素,并且没有CommandBindings
我试着打电话
System.Windows.Input.CommandManager.InvalidateRequerySuggested();在CanExecute之前执行调用,但这不影响行为。
--
你知道那里会发生什么事吗?还有什么其他的模式我可以用吗?
这个问题看起来类似于CanExecute method going to false problem,但我没有在任何地方设置焦点。
谢谢!
发布于 2014-06-26 14:49:13
因为您要为目标传入null,这意味着框架将基于Keyboard.FocusedElement进行路由,所以这要么是空的(如果应用程序不活动,或者键盘焦点在其他东西(比如HwndHost或MessageBox)中),要么Keyboard.FocusedElement是非空的,但不是在窗口的视觉/逻辑树中。
https://stackoverflow.com/questions/24396786
复制相似问题