Как перебрать статические элементы WPF StackPanel? - PullRequest
7 голосов
/ 14 сентября 2009

Возможно, это очень просто, но у меня проблемы с этим (также, похоже, Google не сильно помогает).

Как можно перебрать статически объявленные элементы (без привязки данных - элементы объявлены в xaml) StackPanel?

Любая помощь приветствуется!

Ответы [ 2 ]

10 голосов
/ 14 сентября 2009

Вы имеете в виду детей StackPanel?

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

Более общее решение, которое будет работать независимо от родителя, будет использовать LogicalTreeHelper или VisualTreeHelper, в зависимости от того, какое дерево WPF вы хотите пройти:

foreach (var child in LogicalTreeHelper.GetChildren(stackPanel))
{
    //do something with child
}
0 голосов
/ 15 сентября 2015

Я думал точно так же, как Джондол, так как в моем случае у меня был один ребенок, и я знал его тип; Я не хотел затенять свой код ненужным циклом. Так вот как я достиг TextBlock внутри гиперссылки:

        var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator();
        looper.MoveNext();
        TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock;
...