2010-08-01 29 views
2

我目前在wpf c#中有一個列表框,並在我的主窗口的keydown事件處理程序中添加了一些鍵綁定。它是空格鍵和上/下鍵的事件處理程序。但是,當我的列表框有焦點時,這些綁定不會啓動。如何禁用這些控件的默認鍵控綁定(不輸入e.handle = true,因此整個按鍵被禁用)並運行我自己的代碼?覆蓋列表框中的默認鍵綁定

回答

1

默認的鍵綁定不直接使用事件,而是使用命令。你可以做的是定義命令並將事件附加到它們。

<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