我使用CommandManager.RegisterClassInputBinding将绑定添加到整个类型.现在我想删除它.
这是我测试的.
private void CommandBinding_Executed_1(object sender,ExecutedRoutedEventArgs e) { CommandManager.RegisterClassInputBinding( typeof(TextBox),new InputBinding(TestCommand,new KeyGesture(Key.S,ModifierKeys.Control))); MessageBox.Show("CommandBinding_Executed_1"); }
在Ctrl H上调用此方法并为Ctrl S注册新的输入绑定.如果我在Ctrl H之前按下Ctrl S它不起作用,但是当它按下它之后按下它.
我检查了sender.InputBindings并且只有一个绑定(Ctrl S)所以我得出结论,RegisterClassInputBinding()不会将绑定添加到每个现有实例,而是存储与该类关联的绑定,然后将它们与处理过的手势进行比较.
但那么为什么没有RemoveClassInputBinding()方法呢?