En parcourant StackPanel enfants dans WPF
J'ai un StackPanel
qui est plein de contrôles, je suis en train de faire une boucle par les éléments et obtenir leurs Noms, mais il me semble que j'ai besoin de jeter chaque élément à son type pour accéder à ses Name
propriété.
Mais que faire si j'ai beaucoup de différents types dans le StackPanel et je veux juste le nom de chaque élément?
Est-il une meilleure façon de le faire?
Voici ce que j'ai essayé:
foreach (object child in tab.Children)
{
UnregisterName(child.Name);
}
OriginalL'auteur user1590636 | 2013-08-01
Vous devez vous connecter pour publier un commentaire.
Il suffit de jeter à la droite de la classe de base.
Tout ce qui descend de
FrameworkElement
a un Nom de propriété.childname = (child as FrameworkElement)?.Name;
?C'est une réponse à partir de 2013, pas de
?.
encore. Je ne vais pas à la rénovation partout. Et je ne sais pas si c'est toujours mieux, ici((FrameworkElement)child).Name
peut-être le plus optimisé.Ouais, j'ai trouvé depuis que vous modifiez la réponse de toute façon. J'ai vu la date.
OriginalL'auteur Henk Holterman
Vous pouvez simplement utiliser le type approprié pour la boucle foreach variable:
Cela fonctionne aussi longtemps que il ya seulement
FrameworkElement
dérivée contrôle dans le Panneau. Si il en existe d'autres (comme les dérivés deUIElement
uniquement) vous pouvez écrire ceci:OriginalL'auteur Clemens
À l'aide de LINQ:
OriginalL'auteur Marc