覆盖列表框中的默认键绑定

问题描述:

我目前在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 OverviewAdvanced WPF你将不得不很难与事件这样做。

+0

你说得对,看起来很难... – internetmw 2010-08-03 13:40:52