如何在DataGrid中获得类似excel的行为?

时间:2011-10-14 07:08:52

标签: wpf excel datagrid keypress editing

我在WPF应用程序中使用codeplex中的DataGrid。 我已经定义了一些 DatagridTemplateColumns 。根据ViewModel中的数据,datatemplate可以包含TextBox或ComboBox。

用户可以使用箭头键遍历网格元素。当用户按下回车键时,它会进入下一行。这些行为很好。

当用户使用箭头键和某些字符(例如a,b,c等)而不是Tab,Enter等来到特定单元格时出现问题。我希望TextBox或ComboBox获得焦点并转到自动进入编辑模式。

我在DataGridCell样式中设置了IsTabStop false。因此,当我从一个单元格中按Tab键时,它会自动转到下一个单元格的TextBox或ComboBox。 但箭头键不会发生同样的情况!!

我不知道怎么办?

1 个答案:

答案 0 :(得分:2)

要让单元格自动进入编辑模式,您可以在单元格上捕获预览鼠标左键,在事件处理程序中,您可以将焦点设置在单元格上并选择它。

您可以将事件注册到datagrid单元格,

<Style TargetType="{x:Type datagrid:DataGridCell}" x:Key="cellStyle">
      <EventSetter Event="PreviewMouseLeftButtonDown" Handler="DataGridCell_PreviewMouseLeftButtonDown" />

然后在处理程序中你也可以检查键盘修饰符,这样你就可以避免使用CTRL + Click和东西等场景。