J'utilise Microsoft WPF DataGrid. J'ai remarqué un comportement étrange avec DataGridTemplateColumn de WPF DataGrid. Lorsque vous utilisez templateColumn dans la grille et que la colonne modèle contient certains contrôles lorsque vous tabulez dans la colonne précédente, le focus n'est pas automatiquement donné au premier élément déclaré dans la colonne modèle. Le foucs est initialement placé sur la bordure de la colonne de modèle et quand nous tabons d'une fois agin le foyer va à la première colonne. Toute solution de contournement pour ce problème. Comment puis-je définir le focus pour aller le premier élément dans la colonne modèle de la grille de données lorsque je tabule.WPF Datagrid -DataGridTemplateColumn onglet problème de mise au point
Répondre
j'ai découvert un lien dans WPF DataGrid discussions CodePlex http://www.codeplex.com/wpf/Thread/View.aspx?ThreadId=35540
Merci à vincent Sibal
Je me suis débarrassé de ce problème en cas de manipulation PrepareCellForEdit 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);
}
}
Qu'est-ce que HODataGridHelper? J'ai essayé d'utiliser ce code dans un projet .NET 4, mais il n'a aucune idée de ce qu'est le HODataGridHelper et je ne trouve nulle part ailleurs une fonction GetVisualChild applicable. – Pete
Pete, c'était une classe personnalisée que nous avons créée. Désolé, je n'ai pas accès à ce morceau de code maintenant. C'est une variante de la méthode GetVisualChild du framework: http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.getvisualchild.aspx – Gopinath
Merci beaucoup. J'ai chaluté pendant des heures pour le trouver. – Echilon
Il existe une solution utilisant une classe statique et une modification du Xaml pour le contrôle que vous voulez focaliser. "WPF DataGrid: Tabbing from cell to cell does not set focus on control"
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"/>
Fonctionne parfaitement. Merci! – dontbyteme
D'autres réponses se trouvent sur cette question: http://stackoverflow.com/questions/1104164/wpf-datagridtemplatecolumn- am-i-missing-something – Neil