覆盖列表框中的默认键绑定
问题描述:
我目前在wpf c#中有一个列表框,并在我的主窗口的keydown事件处理程序中添加了一些键绑定。它是空格键和上/下键的事件处理程序。但是,当我的列表框有焦点时,这些绑定不会启动。如何禁用这些控件的默认键控绑定(不输入e.handle = true,因此整个按键被禁用)并运行我自己的代码?覆盖列表框中的默认键绑定
答
默认的键绑定不直接使用事件,而是使用命令。你可以做的是定义命令并将事件附加到它们。
<Window.Resources>
<CommandBinding x:Key="NewBinding" Command="ApplicationCommands.New"
Executed="NewCommand" CanExecute="CanExecuteNew">
</CommandBinding>
</Window.Resources>
<ListBox.CommandBindings>
<StaticResource ResourceKey="NewBinding"></StaticResource>
</ListBox.CommandBindings>
覆盖默认键绑定语法是:
<Window.InputBindings>
<KeyBinding Key="" Modifiers="" Command="" />
</Window.InputBindings>
如果你是新来这个试图得到一些概述WPF Commanding Overview和Advanced WPF你将不得不很难与事件这样做。
你说得对,看起来很难... – internetmw 2010-08-03 13:40:52