我在Silverlight应用程序中有一个数据网格。单击第一行,然后按Enter键使选择移动到下一行。我不想要这种行为 - 在此屏幕上,Enter键用于完全不同的目的。
我意识到这是编辑框架的一部分,但我需要一种方法来关闭它。我尝试将IsReadOnly设置为True(即使控件在技术上不是只读的)并且没有任何效果。
我附加了datagrid KeyDown事件,但是在按下Enter键时没有调用它。它适用于其他键。
我很难过。谢谢你的帮助。
答案 0 :(得分:4)
是的,这很烦人。
据我所知,唯一的选择是创建自己的继承自DataGrid的控件,并在将事件传递给基础之前执行所需的操作。
public class NewDataGrid : DataGrid
{
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
//do what is needed here
e.Handled = true;
}
base.OnKeyDown(e);
}
}