Sto cercando un metodo affidabile per costruire un elenco di controlli di tipo <> contenuta in una specifica < Panel> controllo derivato - questo include quelli che sono figli diretti e quelli quali sono figli di bambini e così via.Silverlight: Trova tutti i controlli di tipo nel layout
Il modo più ovvio è stato quello di farlo solo in modo ricorsivo:
Aggiungi alla lista dei figli di questo controllo di tipo <>, quindi ripetere la funzione per ogni bambino di questo controllo, che è una < Panel> o discendente.
Tuttavia sono preoccupato che questo non troverà tutti i controlli nella struttura - qualsiasi ContentControl potrebbe contenere anche un controllo di < Tipo>, come potrebbe HeaderedContentControl o qualsiasi altro controllo simile con uno o più attributi figlio/contenuto .
Esiste un modo per eseguire una ricerca rispetto all'albero di layout effettivo, in modo che sia possibile trovare un'istanza di uno specifico tipo di controllo senza un genitore specifico?
Sì, funziona bene. Grazie. – Jonx
@AnthonyWJones quando utilizzo Descendents nessun controllo verrà retrunito per me, io sono trace e VisualTreeHelper.GetChildrenCount (root) restituirà 0 count, perché? –