我使用的是Avalonia.Controls.DataGrid。默认情况下,当网格具有焦点并按下Enter时,它会自动处理事件并将所选内容移动到下一项。如何防止此默认行为?我希望有一个自定义的Enter KeyDown处理程序。
发布于 2021-06-13 23:59:39
所以这里不能使用KeyDown事件,因为特别是对于Enter,在自定义代码可以处理它之前,它就被DataGrid吞并了。
相反,Key bindings起作用了。您可以将密钥绑定到命令,如下所示:
<DataGrid ...>
<DataGrid.KeyBindings>
<KeyBinding Gesture="Enter" Command="{Binding SelectCommand}" />
</DataGrid.KeyBindings>
...
</DataGrid>这也会阻止网格在按Enter时移动到下一项。
发布于 2021-06-12 15:47:35
试试这个:
1-给你的数据网格一个名字(使用x: name )
2-将这个放入你的构造函数中:
yourDataGridName.KeyDown += yourDataGridName_KeyDown;3-添加此处理程序:
protected void yourDataGridName_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
//Put your custom code here
}
}https://stackoverflow.com/questions/67335465
复制相似问题