WPF DataGridTemplateColumn. ¿Me estoy perdiendo de algo?

     <data:DataGridTemplateColumn Header="Name">
        <data:DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Name}">
            </DataTemplate>
        </data:DataGridTemplateColumn.CellTemplate> 
        <data:DataGridTemplateColumn.CellEditingTemplate>
            <DataTemplate>
                <TextBox Text="{Binding Name}">
            </DataTemplate>
        </data:DataGridTemplateColumn.CellEditingTemplate> 
    </data:DataGridTemplateColumn>              

Es claro el ejemplo de la columna de plantillas, ¿verdad? Qué podría estar mal con eso? Entonces, aquí está la cosa: cuando un usuario navega a través de DataGrid presionando la tecla TAB, necesita presionar la tecla TAB dos veces (!) Para poder editar texto en TextBox. ¿Cómo podría hacerlo editable tan pronto como el usuario tenga el foco de la columna, quiero decir, incluso si solo comienza a escribir?

De acuerdo. Encontré una forma: en Grid.KeyUp () puse el código a continuación:

 if (Grid.CurrentColumn.Header.ToString() == "UserName")
        {
            if (e.Key != Key.Escape) 
            {
                Grid.BeginEdit();

                // Simply send another TAB press
                if (Keyboard.FocusedElement is Microsoft.Windows.Controls.DataGridCell)
                {
                    var keyEvt = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, Key.Tab) { RoutedEvent = Keyboard.KeyDownEvent };
                    InputManager.Current.ProcessInput(keyEvt);
                }
            }
        } 

Respuestas a la pregunta(4)

Su respuesta a la pregunta