WPF DataGridTemplateColumn. Ai-je raté quelque chose?

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

Il est clair exemple de Modèle de colonne, à droite? Ce qui pourrait être mal avec ça?
Donc, voici la chose - quand un utilisateur navigue à travers DataGrid avec frapper touche TAB, il a besoin de frapper l'ONGLET deux fois(!) pour être en mesure de modifier le texte dans la zone de texte. Comment pourrais-je le rendre modifiable dès que l'utilisateur obtient la colonne de mise au point, je veux dire même si il commence juste à taper?

Ok. J'ai trouvé un moyen en Grille.KeyUp (), j'ai mis le code ci-dessous:

 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);
                }
            }
        } 
InformationsquelleAutor iLemming | 2009-07-09