WPF Datagrid-DataGridTemplateColumn tab focus issue

J'utilise Microsoft WPF datagrid. J'ai remarqué un comportement étrange avec WPF datagrid DataGridTemplateColumn. Lorsque vous utilisez la templateColumn dans la grille et que la colonne template contient des contrôles lorsque vous tabulez la colonne précédente, le focus n'est pas automatiquement donné au premier élément déclaré dans la colonne template. Les foucs sont initalement positionnés sur la bordure de la colonne Modèle et lorsque nous tabulons once agin le focus va à la première colonne. N'importe quelle solution pour contourner cela question. Comment puis-je définir le focus pour aller le premier élément dans la colonne Modèle du datagrid quand je ferme l'onglet.

17
demandé sur Gopinath 2009-04-14 06:04:34

4 réponses

je me suis débarrassé de ce problème en traitant L'événement Preprecellforedit de la grille. Voici le code

void HODataGrid_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs e)
{
      UIElement inputElement;
      ///
      /// Texbox is the first control in my template column
      ///
      inputElement = HODataGridHelper.GetVisualChild<TextBox>(e.EditingElement);
      if (inputElement != null)
      {
           Keyboard.Focus(inputElement);
      }
}
7
répondu Gopinath 2010-05-14 15:42:38

nous avons résolu ce problème en modifiant le style sur DataGridCell:

<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
    <Setter Property="IsTabStop" Value="False"/>
6
répondu patrickbadley 2016-07-15 16:27:22

il y a une solution utilisant une classe statique et un changement au Xaml pour le contrôle que vous voulez focalisé. "WPF DataGrid: la Tabulation de la cellule à la cellule n'a pas mis l'accent sur le contrôle"

2
répondu amaca 2012-01-20 19:13:03

j'ai trouvé un lien dans les discussions codeplex de WPF datagrid http://www.codeplex.com/wpf/Thread/View.aspx?ThreadId=35540

merci à vincent sibal

1
répondu 2009-04-14 02:31:14