Ich habe eine Anwendung entwickelt, die eine Baumansicht aus hierarchischen Daten in einer Datenbank auffüllt.So zeigen Sie nur ein TreeView-Erweiterungszeichen [+] an, wenn untergeordnete Elemente vorhanden sind
Ich habe es entworfen, um Lazy-Loading zu verwenden, so dass es nur die untergeordneten Knoten erhält, wenn ein Knoten erweitert wird.
Mein Problem ist, dass ich natürlich nicht weiß, ob ein Knoten Kinder hat, es sei denn ich einen Anruf an die Datenbank und schauen. Derzeit habe ich einen Dummy-Child-Knoten implementiert, so dass das Symbol [+] für alle Knoten erscheint. Ich entferne dann diesen Dummy-Knoten und erhalte die echten Kind-Knoten im BeforeExpand
-Event.
Das bedeutet, ich bekomme ein [+] Symbol für Knoten, die keine untergeordneten Knoten haben, also klickt der Benutzer auf das Erweiterungssymbol und es gibt nichts, was ein bisschen schäbig aussieht.
Was ist die bevorzugte Methode für die Verarbeitung von untergeordneten Knoten in einer Lazy-Load-Baumansicht? Wenn ich einen Aufruf an die Datenbank mache, um zu sehen, ob es Kindknoten gibt, dann könnte ich genauso gut die Kindknoten laden und das Lazy Loading vergessen, oder?
Ein Gedanke, den ich hatte, war, ein "HasChildren" -Flag in der Datenbank zu speichern, so dass ich selektiv meinen Dummy-Kind-Knoten nur für die Knoten erstellen kann, die tun untergeordnete Knoten haben.
Sorry für Wandern auf, sie ist sehr daran interessiert zu sehen, was andere Leute denken ...
BTW: Dies ist eine Treeview in Visual Studio 2005 –