Hallo Zusammen
Ich habe folgende Ausgangslage:
Ich habe ein TreeView Control in einam Window, dieses zeigt meine Datenstruktur an, welche in Listen abgelegt ist und wie folgt hirarchisch aufgebaut ist:
Klasse Datensource
-> Klasse Kapitel
---> Klasse Supkapitel
-----> Seiten
In jeder Klasse hat es ein Attribut "Text", welches dann im TreeView ausgegeben werden sollte und natürlich kann es mehrere Kapitel, bzw Supkapitel / Seiten geben.
Die Baumstruktur aufzubauen ist kein Problem, dies mache ich beim Initialliseren des Windows. Jedoch möchte ich nun, wenn etwas in der Datenstruktur geändert wird (dies muss nicht zwingend über das TreeView Control geschehen, z.B. auch über ein Menu, etc...) sollte sich die Baumstruktur automatisch updaten.
Frage:
Gibt es ein Mechanismus, welches das automatisch macht?
Ich dachte da daran, es zuerst in der OnDraw Methode immer wieder neu zu zeichnen (und bei einer Änderung einen InvalidRect auszulösen), jedoch ist dann der Zustand des TreeView (welche Nodes aufgeklappt sind) nicht gespeichert -> gibt es da einen Trick um sich dies zu merken?
Bin ich völlig auf dem Holzweg?
Danke und Gruss
Andy
Hallo haab,
Gibt es ein Mechanismus, welches das automatisch macht?
Nein! Musst du programmiren.
Bin ich völlig auf dem Holzweg?
Mit dem OnDraw (du meinst OnPaint, oder?) bist du völlig auf dem Holzweg.
gibt es da einen Trick um sich dies zu merken?
Du kannst dir das in TreeNode.Tag merken. Oder du erweiterst deine Datenstruktur.
herbivore
Du hast bestimmt ein zwei Methoden, welche Rekursiv die Daten aus der Klasse Datensource auslieset, und die Nodes hinzufügt. Mach in deiner Datensource-Klasse einen Event, sobald sich die Daten ändern. Im Form registrierst du dich bei diesem Event und rufst die Methoden auf, welche das Treeview beglücken.
.unreal