如何解决Avalonia DataGrid 输入处理
我正在使用 Avalonia.Controls.DataGrid
。默认情况下,当网格获得焦点并按下 Enter 键时,它会自动处理该事件并将选择移动到下一项。如何防止这种默认行为?我想要一个自定义的 Enter KeyDown 处理程序。
解决方法
所以 KeyDown
事件不能在这里使用,因为特别是对于 Enter
,它在自定义代码可以处理之前被 DataGrid 吞掉了。
相反,Key bindings 起作用。您可以将密钥绑定到这样的命令:
<DataGrid ...>
<DataGrid.KeyBindings>
<KeyBinding Gesture="Enter" Command="{Binding SelectCommand}" />
</DataGrid.KeyBindings>
...
</DataGrid>
这也会在按下 Enter 时阻止网格移动到下一项。
,试试这个:
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
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。