2011-05-08 81 views
1

我有一個WPF DataGrid與少數列。現在我嘗試將快捷鍵「Shift + $」添加到DataGrid列之一中。我想要實現的是,當用戶在partipular列上,然後按下「Shift + $」,它會觸發命令。如果其他列上的用戶「Shift + $」用作正常輸入。如何將添加鍵綁定到DataGrid列級別?

任何人都可以給我一些想法,我怎麼能做到這一點?

感謝

回答

0

選項是有點限制與DataGrid列,我嘗試做這種方式:

<DataGridTextColumn Binding="{Binding Name}"> 
    <DataGridTextColumn.EditingElementStyle> 
     <Style> 
      <EventSetter Event="FrameworkElement.Loaded" Handler="DG_NameColumn_Loaded"/> 
     </Style> 
    </DataGridTextColumn.EditingElementStyle> 
</DataGridTextColumn> 
private void DG_NameColumn_Loaded(object sender, RoutedEventArgs e) 
{ 
    var tb = sender as TextBox; 
    tb.InputBindings.Add(new KeyBinding(Commands.DoStuff, new KeyGesture(Key.D4, ModifierKeys.Shift))); 
} 

不幸的是,這將引發一個異常告訴你Shift + D4不被KeyGesture支持。我認爲你的計劃可能無法解決......

+0

嗨,感謝您的回覆。還試過Shift + D4,它不受支持。你說的是有沒有解決我的問題? – Jing 2011-05-10 01:47:40

+0

我不知道,雖然看起來不像...... – 2011-05-10 09:05:38

+0

@ H.B。我也有類似的問題。我在DataGridColumnHeader中有一個文本框,並且希望當我按下該文本框上的Enter鍵時可以觸發一個命令。那可能嗎?我試過這個答案:http://stackoverflow.com/a/12943306/2284240,但我沒有那麼幸運。我的意思是我把'kb => kb.Key == e.Key && .........'改成了'kb => kb.Key == Key.Enter'。在應用上述更改後,當我按下箭頭鍵等任何鍵時,該命令也會觸發。我可以限制,只有輸入密鑰? – Vishal 2015-04-06 00:35:44