Question

Probablement très facile, mais j’ai du mal à le comprendre (et Google ne semble pas beaucoup aider).

Comment puis-je parcourir les éléments déclarés statiquement (aucune liaison de données - les éléments sont déclarés dans le xaml) d'un StackPanel?

Toute aide appréciée!

Était-ce utile?

La solution

Voulez-vous dire les enfants de StackPanel ?

foreach (var child in stackPanel.Children)
{
    //do something with child
}

Une solution plus générique qui fonctionnerait indépendamment du parent serait d'utiliser LogicalTreeHelper ou VisualTreeHelper , en fonction de l'arborescence WPF que vous souhaitez parcourir:

foreach (var child in LogicalTreeHelper.GetChildren(stackPanel))
{
    //do something with child
}

Autres conseils

Je pensais exactement comme Johnldol, car dans mon cas, j’avais un enfant et je connaissais son type; Je ne voulais pas masquer mon code par une boucle inutile. Voici donc comment j'ai atteint le TextBlock à l'intérieur du lien hypertexte:

        var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator();
        looper.MoveNext();
        TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top