Hierarchiczne TreeView z listy obiektów
Wielokrotnie stawałem przed problemem zbudowania hierarchicznego TreeView z listy obiektów.
Pisanie odpowiednich foreach, budowanie całej hierarchii TreeNode’ów stało się za którymś razem męczące.
Parę dni temu doczytałem o TreeNodeBindings i postanowiłem chociaż w części zautomatyzować to zadanie. Najpierw przyszło mi na myśl bezpośrednie podpięcie listy do DataSource całego TreeView, jednak jak szybko się okazało kolekcja taka wymaga implementacji interfejsu IHierarchicalEnumerable a jej elementy dodatkowo IHierarchyData.
Bardzo szybko zapadła więc decyzja – nie tędy droga ;-) Chciałem rozwiązania dość uniwersalnego, które nie będzie wymagało dodatkowych działań w klasach.
Jak więc „oszukać” i podłączyć jako DataSource obiekt, który automatycznie odwali za nas częśc pracy? Więc odpowiedź okazała się dość banalna – XML.
Wystarczy zbudować w pamieci obiekt XML, składający się wyłącznie z tych danych, które chcemy pokazywać na drzewie i właśnie jego podłączyć jako DataSource, używając odpowiednio ustawionego TreeNodeBindings.
Read more


