J'essaie de trouver le TextBlock qui se trouve dans le modèle de contrôle d'une zone de liste déroulante. en utilisant VisualTreeHelpar.GetChildrenCount ne fonctionne que si la zone de liste déroulante est déclarée en XAML. Dans ce cas, GetChildrenCount renvoie 1 et une recherche récursive est possible.Trouver le TextBlock qui fait partie du modèle de contrôle par défaut ComboBox généré par le code
Toutefois, si je déclare le combo en tant que membre de la classe Window en utilisant du code, affecté et en le remplaçant, la fonction GetChildrenCount renvoie 0. Lorsque j'exécute snoop dans ce scénario Affiche la hiérarchie enfants combo. Je veux pouvoir faire une recherche dans comboBox comme le fait Snoop.
Toute aide serait appréciée.
code:
ComboBox mCombo = null;
private void Windows_Loaded(object sender, RoutedEventArgs e)
{
mCombo = new ComboBox;
mGrid.Children.Add(mCombo);
Grid.SetRow(mCombo,0);
int count = VisualTreeHelpar.GetChildrenCount(mCombo);
}
merci 'cela aide jusqu'à un certain point, et je suis capable d'aller en profondeur à travers l'arbre visuel. Toujours quand j'arrive à l'élément ContentPresenter avec dans le ComboBox, Snoop montre qu'il a 1 enfant qui est un TextBlock, tandis que VisualTreeHelper.GetChildrenCount renvoient 0, même lorsque j'appelle explicitement à ApplyTemplate sur ContentPresenter avant d'appeler VisualTreeHelper.GetChildrenCount. Encore une fois, comment puis-je obtenir à ce TextBlock? – uriya