我希望有一个自定义DataGrid,
1.在编辑模式下按Enter键时移动到下一个单元格。
1.当到达当前行的最后一列时,焦点应移动到下一行的第一个单元格。
1.在到达下一个单元格时,如果该单元格是可编辑的,则它应该自动变为可编辑的。
1.如果单元格包含一个ComboBox
而不是组合框列,则该组合框应DropDownOpen。
请帮助我在这方面。我一直在尝试从过去的几天通过创建一个自定义DataGrid和写了一些代码
protected override void OnPreviewKeyDown(System.Windows.Input.KeyEventArgs e)
但我失败了。
7条答案
按热度按时间laik7k3q1#
这个键的方法是'dataGrid.SetKeyboardFocusToCell'.所以我们可以附加KeyDown事件:
在本例中,下一个框中的文本也被选中。对于大多数情况下内容被键入新内容所替换的字段,此选项非常有用。
请务必注意,一般而言,'dataGrid.SetKeyboardFocusToCell()'之后的作业必须透过发送器传送,才能让UI完成更新。否则可能会发生奇怪的事情。
例如,使用此方案,您甚至可以在当前行后面插入一行。
smdncfj32#
gblwokeq3#
一个简单得多的实现。这个想法是捕捉keydown事件,如果键是“回车”,那么移动到下一个标签,也就是网格的下一个单元格。
1szpjjfi4#
bakd9h0s5#
这个解决方案怎么样?通过设置
Handled=true
取消Enter键的操作,然后按Tab键。lmyy7pcs6#
就目前而言,我已经写了这篇文章,它对我很有效。
zlhcx6iw7#