2008-12-16 25 views
13

Czekam na tę kontrolę, i wydaje się, że brakuje standardowych właściwości ". Datasource" i "datamember" dla wiązania danych. Czy ta kontrola nie jest wiążąca? Mogę napisać jakąś niestandardową funkcję, która zapełnia widok drzewa z danego źródła danych, jak sądzę, i osadzić obiekty danych w razie potrzeby, ale czy jest to "najlepsza praktyka"? Czy wszyscy po prostu używają kontroli dostępu do drzewa innej firmy?W jaki sposób łączysz dane z formantem System.Windows.Forms.Treeview?

Odpowiedz

8

Masz rację, ponieważ nie ma powiązania danych. Powodem jest to, że TreeViews są hierarchicznymi strukturami danych. To nie jest prosta lista. W rezultacie opcja databind jest nieprawidłowa, aby wypowiadać strukturę list.

Niestety to tworzenia własnych metod kontroli zapełnić lub zakup 3rd party (które w końcu będą mieli swoje własne metody zapełniania.)

Oto przyzwoity artykuł MSDN na Binding Hierarchical Data.

2

Jeśli jest to tylko kilka poziomów, chciałbym wypełnić zestaw danych kilkoma tabelami i ustawić DataRelation w kolumnach. Następnie użyjesz zagnieżdżonych pętli i utworzysz węzły drzewa.

5

Używam sterowania drzewem z Developer's Express. Wykona on tabelę danych i wyświetli/edytuje ją w sposób hierarchiczny. Wszystko, czego potrzebuje, to pole klucza podstawowego i pole identyfikatora nadrzędnego w tabeli i może dowiedzieć się, co się dzieje.

Możesz zrobić to samo, jeśli rzucisz własny kod i użyjesz własnej klasy.

class Node 
    { 
    System.Collections.Generic.List<Node> _Children; 
    String Description; 

    void Node() 
    { 
     _Children = new System.Collections.Generic.List<Node>(); 
    } 

    public System.Collections.Generic.List<Node> Children() 
    { 
     return (_Children); 
    } 
    } 

    class Program 
    { 
    static void Main(string[] args) 
    { 
     System.Collections.Generic.List<Node> myTree = new System.Collections.Generic.List<Node>(); 
     Node firstNode = new Node(); 
     Node childNode = new Node(); 
     firstNode.Children().Add(childNode); 
    } 
    } 
Powiązane problemy