Domanda

Probabilmente molto facile, ma ho difficoltà a capirlo (anche Google non sembra aiutare molto).

Come posso scorrere gli elementi dichiarati staticamente (nessun databinding - gli elementi sono dichiarati in xaml) di uno StackPanel?

Qualsiasi aiuto apprezzato!

È stato utile?

Soluzione

Intendi i figli di StackPanel ?

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

Una soluzione più generica che funzionerebbe indipendentemente dal genitore sarebbe usare LogicalTreeHelper o VisualTreeHelper , a seconda dell'albero WPF che vuoi attraversare:

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

Altri suggerimenti

Pensavo esattamente come Johnldol, poiché nel mio caso avevo un figlio e conoscevo il suo tipo; Non volevo oscurare il mio codice con un loop non necessario. Quindi è così che ho raggiunto TextBlock all'interno del collegamento ipertestuale:

        var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator();
        looper.MoveNext();
        TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top