在我的WPF Datagrid中,我捕获“delete”键,处理它,然后datagrid本身通过继续处理自己的删除键处理程序(这就是我想要的)来从UI中删除该行。 p>
但是现在我想要 CTRL-S打开一个搜索栏,它确实如此,但是当他按下CTRL-S时,它还会消除用户所在的单元格,所以我正在寻找告诉datagrid取消按键的方法,以便它不会在Datagrid上执行。
如何取消这样的按键?
XAML:
<toolkit:DataGrid x:Name="TheDataGrid" DockPanel.Dock="Bottom"
CanUserAddRows="False"
AlternatingRowBackground="#ddd"
CanUserSortColumns="true"
PreviewKeyDown="TheDataGrid_PreviewKeyDown"
AutoGenerateColumns="False"
RowEditEnding="TheDataGrid_RowEditEnding">
代码隐藏:
private void TheDataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (Keyboard.IsKeyDown(Key.LeftCtrl) && Keyboard.IsKeyDown(Key.S))
{
ShowSearchBar();
}
switch (e.Key)
{
case Key.Delete:
DeleteCustomer(sender, e);
break;
}
}
答案 0 :(得分:12)
e.Handled = true;
答案 1 :(得分:1)
在稍微不同的情况下,我有第二个PreviewKeyDownEventArgs
类型的参数,在这种情况下解决方案是:
e.IsInputKey = true;