Localisation des enfants de conteneurs WPF par type : une solution pratique
Trouver des éléments enfants spécifiques dans les conteneurs WPF peut être difficile. L'utilisation directe de Children.GetType
pour, par exemple, récupérer les contrôles ComboBox
d'un Grid
échoue souvent.
Une solution robuste implique une recherche récursive utilisant une méthode d'extension, GetChildOfType
. Cette méthode recherche efficacement dans l'arborescence visuelle d'un conteneur les éléments correspondant à un type spécifié.
Voici la GetChildOfType
implémentation :
<code class="language-csharp">public static T GetChildOfType<T>(this DependencyObject depObj) where T : DependencyObject { if (depObj == null) return null; for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++) { DependencyObject child = VisualTreeHelper.GetChild(depObj, i); if (child != null && child is T) { return (T)child; } T result = GetChildOfType<T>(child); if (result != null) return result; } return null; }</code>
Cette méthode simplifie le processus de récupération des enfants d'un type particulier. Par exemple, pour obtenir un ComboBox
à partir d'un conteneur nommé MyContainer
:
<code class="language-csharp">var myComboBox = this.MyContainer.GetChildOfType<ComboBox>();</code>
Cette approche fournit un moyen propre et efficace de naviguer dans l'arborescence visuelle WPF et de localiser des éléments enfants spécifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!