无法使用NotACommand在本地覆盖全局定义的InputBindings

时间:2015-05-01 02:28:35

标签: c# wpf xaml inputbinding

我目前在使用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));
}

有什么想法,建议吗?或者这是完全错误的做法?

0 个答案:

没有答案