J'ai un TabControl dans une fenêtre et plusieurs éléments d'onglet dans le contrôle. Comment puis-je rechercher tous les contrôles TextBox contenus dans l'un des onglets?WPF - Comment trouver un objet contenu dans un autre objet?
Merci.
J'ai un TabControl dans une fenêtre et plusieurs éléments d'onglet dans le contrôle. Comment puis-je rechercher tous les contrôles TextBox contenus dans l'un des onglets?WPF - Comment trouver un objet contenu dans un autre objet?
Merci.
Vous devriez lire this.
Vous pouvez utiliser this code et le modifier pour faire correspondre le type au lieu du nom.
Quelque chose comme ceci:
public static IEnumerable<T> FindDescendants<T>(DependencyObject obj, Predicate<T> condition) where T : DependencyObject
{
List<T> result = new List<T>();
for (var i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
var child = VisualTreeHelper.GetChild(obj, i);
var candidate = child as T;
if (candidate != null)
{
if (condition(candidate))
{
result.Add(candidate);
}
}
foreach (var desc in FindDescendants(child, condition))
{
result.Add(desc);
}
}
return result;
}
Et en cas de trouver toutes les zones de texte dans un élément de l'onglet appel de méthode ressemblera à ceci:
var allTextBoxes = FindDescendants<TextBox>(myTabItem, e => true);
La réponse de baalazamon est mieux. –