我已将命令绑定到Ribbon控件上的按钮。按钮上的CanExecute方法按预期调用,但单击该按钮不会导致调用Execute方法。 CanExecute
将CanExecute
属性设置为true
- 相关按钮已启用且可点击。
之前有其他人见过这种行为吗?如果是这样,我该怎么办呢!
编辑:
CommandBinding commandBinding = new CommandBinding(StaticCommands.ThisCommand, ThisCommandExecutedHandler, ThisCommandCanExecuteHandler);
CommandManager.RegisterClassCommandBinding(this.GetType(), commandBinding);
CommandBindingList.Add(commandBinding);
StaticCommands.ThisCommand
是RoutedCommand
,输入提示为F5
。
不幸的是我无法发布任何xaml,因为所有内容都包含在另一个团队的库中。我认为现在是正确的。此外,使用与命令关联的键盘手势(按F5
)会导致调用execute方法。
没有抛出异常,输出窗口中没有消息,并且snoop显示正确绑定的所有内容。我真的很难过。
答案 0 :(得分:1)
如果参数在类型上没有正确匹配,通常会发生这种情况......您是绑定一种类型的CommandParameter
并在Command.Execute()调用中接受不同的类型参数吗?
答案 1 :(得分:0)
通过将RoutedCommands
包裹在RelayCommand
中来解决此问题。我不知道为什么会这样,但假设其他团队的装配有问题。