Pregunta

Probablemente sea muy fácil, pero estoy teniendo problemas para resolver esto (también Google no parece ayudar mucho).

¿Cómo puedo recorrer los elementos declarados estáticamente (sin enlace de datos, los elementos se declaran en el xaml) de un StackPanel?

¡Se agradece cualquier ayuda!

¿Fue útil?

Solución

¿Te refieres a los hijos del StackPanel ?

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

Una solución más genérica que funcionaría independientemente del padre sería usar LogicalTreeHelper o VisualTreeHelper , dependiendo del árbol WPF que desee recorrer:

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

Otros consejos

Pensé lo mismo que Johnldol, ya que en mi caso tenía un hijo y sabía su tipo; No quería oscurecer mi código por un bucle innecesario. Así es como llegué al TextBlock dentro del hipervínculo:

        var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator();
        looper.MoveNext();
        TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top