Если вы хотите выполнить всеобъемлющий поиск по визуальному дереву элементов управления, вы можете использовать класс VisualTreeHelper.
Используйте следующий код для перебора всех визуальных потомков элемента управления:
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parentObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(parent, i);
if (child is TextBox)
// Do something
}
Если вы хотите выполнить поиск вниз по дереву, вы захотите выполнить этот цикл рекурсивно, например так:
public delegate void TextBoxOperation(TextBox box);
public bool SearchChildren(DependencyObject parent, TextBoxOperation op)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(parent, i);
TextBox box = child as TextBox;
if (box != null)
{
op.Invoke(box);
return true;
}
bool found = SearchChildren(child, op);
if (found)
return true;
}
}