Вопрос

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

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

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

Это было полезно?

Решение

Вы имеете в виду детей 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
}

Другие советы

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

        var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator();
        looper.MoveNext();
        TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top