我目前在使用WPF InputBindings时遇到问题。我们已经定义了应用程序级键盘绑定,但是在某些地方我希望使用控件的默认行为,方法是将该控件的绑定设置为NotACommand
。
这似乎不起作用(虽然覆盖与另一个命令的控件级绑定似乎工作正常)。这是一些示例代码:
App.xaml.cs
public void OnStartup()
{
var window = Application.Current.MainWindow.
window.InputBindings.Add(new KeyBinding(CommandA, Key.A, Modifiers.Control));
window.InputBindings.Add(new KeyBinding(CommandB, Key.Delete, Modifiers.None));
}
SomeControl.xaml.cs
public void OverrideBindings()
{
// this invokes LocalCommand instead of CommandA
this.InputBindings.Add(new KeyBinding(LocalCommand, Key.A, Modifiers.Control));
// this still invokes CommandB
this.InputBindings.Add(new KeyBinding(ApplicationCommands.NotACommand, Key.Delete, Modifiers.None));
}
有什么想法,建议吗?或者这是完全错误的做法?