我在WPF应用程序中使用codeplex中的DataGrid。 我已经定义了一些 DatagridTemplateColumns 。根据ViewModel中的数据,datatemplate可以包含TextBox或ComboBox。
用户可以使用箭头键遍历网格元素。当用户按下回车键时,它会进入下一行。这些行为很好。
当用户使用箭头键和某些字符(例如a,b,c等)而不是Tab,Enter等来到特定单元格时出现问题。我希望TextBox或ComboBox获得焦点并转到自动进入编辑模式。
我在DataGridCell样式中设置了IsTabStop false。因此,当我从一个单元格中按Tab键时,它会自动转到下一个单元格的TextBox或ComboBox。 但箭头键不会发生同样的情况!!
我不知道怎么办?
答案 0 :(得分:2)
要让单元格自动进入编辑模式,您可以在单元格上捕获预览鼠标左键,在事件处理程序中,您可以将焦点设置在单元格上并选择它。
您可以将事件注册到datagrid单元格,
<Style TargetType="{x:Type datagrid:DataGridCell}" x:Key="cellStyle">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="DataGridCell_PreviewMouseLeftButtonDown" />
然后在处理程序中你也可以检查键盘修饰符,这样你就可以避免使用CTRL + Click和东西等场景。