防止Silverlight DataGrid处理Enter键

4
在我的Silverlight应用程序中有一个datagrid。点击第一行,然后按Enter键会导致选择移到下一行。我不想要这种行为 - 在这个屏幕上,Enter键用于完全不同的目的。
我知道这是编辑框架的一部分,但我需要一种方法来关闭它。我尝试将IsReadOnly设置为True(即使该控件实际上不是只读的),但没有任何效果。
我连接到了datagrid KeyDown事件,但在按Enter键时它没有被调用。对于其他键它工作得很好。
我感到困惑。谢谢你的帮助。
1个回答

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);     
    } 
} 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接