1
I subclassed DataGridTemplateColumn
定义自定义列类型。我使用下面的代码来初始化编辑模式。DataGridTemplateColumn BeginEdit on selected
protected override object PrepareCellForEdit(
FrameworkElement editingElement, RoutedEventArgs editingEventArgs)
{
editingElement.MoveFocus(
new TraversalRequest(FocusNavigationDirection.First));
return base.PrepareCellForEdit(editingElement, editingEventArgs);
}
private void MyTextControlGotFocus(object sender, RoutedEventArgs e)
{
var control = sender as MyTextControl;
if (control != null)
{
control.SelectAll();
}
}
的问题是,经过我1)点击进入细胞和2)再次点击进入编辑模式PrepareCellForEdit
被称为只。
随着DataGridTextColumn
我可以选择单元格并键入一些文本立即进入编辑模式,而无需再次点击。我想为我的列类型使用相同的行为。
问题是,如何处理单元格上的KeyDown事件,以便在我的DataGridTemplateColumn
类中调用DataGridOwner.BeginEdit
。我试图向CellTemplate
内的控件添加一个PreviewKeyDown
处理程序,但该事件未被触发。