2011-05-08 87 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