Poszukuję niezawodnej metody do zbudowania listy kontrolnej < Typ> zawartej w konkretnej kontrolce <> pochodnej - obejmuje to te, które są bezpośrednimi dziećmi, oraz które są dziećmi dzieci i tak dalej.Silverlight: Znajdź wszystkie formanty typu w layoucie
Najbardziej oczywistym sposobem było po prostu to zrobić rekurencyjnie:
Dodaj do listy żadnych dzieci z tej kontroli < typ>, a następnie powtórzyć funkcję dla każdego dziecka z tej kontroli, która jest < panel> lub potomkiem.
Obawiam się jednak, że nie będzie można znaleźć wszystkich elementów sterujących w drzewie - dowolna kontrolka ContentControl może również zawierać formant < Typ>, podobnie jak HeaderedContentControl lub dowolne inne podobne sterowanie z jednym lub większą liczbą atrybutów podrzędnych/treściowych .
Czy istnieje sposób przeprowadzenia wyszukiwania z faktycznym drzewem układu, aby można było znaleźć instancjędowolnej instancji o nazwie określonej bez elementu nadrzędnego?
Tak, działa ładnie. Dziękuję Ci. – Jonx
@AnthonyWJones, gdy używam Descendents, żadna kontrola mnie nie powtórzy, jestem trace i VisualTreeHelper.GetChildrenCount (root) zwróci 0 count, why? –