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
處理程序,但該事件未被觸發。