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.
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);
}
}
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"/>
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"
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