WPF DataGridTemplateColumn. Czy czegoś mi brakuje?

     <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>              

To jasny przykład kolumny Szablon, prawda? Co może być z tym nie tak? Więc oto jest rzecz - kiedy użytkownik przechodzi przez DataGrid, naciskając klawisz TAB, musi dwukrotnie nacisnąć TAB (!), Aby móc edytować tekst w TextBox. Jak mogę go edytować, gdy tylko użytkownik uzyska fokus kolumny, nawet jeśli po prostu zaczyna pisać?

Dobrze. Znalazłem sposób - w Grid.KeyUp () Umieściłem poniższy kod:

 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);
                }
            }
        } 

questionAnswers(4)

yourAnswerToTheQuestion