TreeNodeCollection zwischen 2 TreeView überführen

yesso

Mitglied
Hi,

habe da ein problem beim überführen der TreeNodeCollection von einem TreeView aus meiner Form1 in die TreeView in meiner Form2!

Das überführen an sich ist nicht mein Problem. Ich kann es schon von der ersten TreeView in die zweite überführen und auch die markierte auffinden und markieren, aber ich bekomme die TreeNodeCollection nicht richtig angezeigt, d.h. beim überführen gehen die Information isExpanded und isSelect verloren (außer in der ersten ebene)...Somit gehen Informationen isExpanded und isSelect ab der Ebene 2 vorloren und werden dann eben zugeklappt angezeigt...

Wie kann man das machen, dass die Baumstruktur genauso angezeigt wird wie das original?

mfG
yesso
 
Hi!

Ich weiß jetzt nicht wie Du deine TreeNodeCollection "überführst", aber versuch die TreeNodeCollection für dein Form2 dirkret via Interface zugänglich zu machen.
Ich bin selber noch nicht an so ein Problem gestoßen und kann Dir daher nicht garantieren ob es so klappt.

MfG cosmo
 
Hi,

was meinst du mit "via Interface zugänglich machen" ? Kannst du das bitte etwas näher erläutern?

danke
 
isExpanded und isSelected sind doch Attribute der Instanz. Gehen die beim Klonen der Instanz wirklich verloren ?

MFG JJB

_
 
Wenn man nur die Knoten der ersten Ebene ins neue TreeView kopiert, dann pappt der diese ein undzwar auch mit den sämtlichen Subknoten aber zusammengeklappt...

musste das so lösen das ich alle knoten im original entlandlaufe und nach isExpanded und isSelected abfrage und bei True den entsprechenden anhand der FullPath-eigenschaft aus der neuen TreeView heraussuche und dafür Expand() oder auf SelectedNode setze...
 
Da muss es doch etwas komfortableres geben, als alle durch zu ackern.
Und Attribute müssten normalerweise mit kopiert werden. Kann doch nicht sein, dass ein Attribut beim Kopieren einfach gelöscht wird.
Ist das wirklich so unvollkommen umgesetzt ?
 
Ich denke schon! Ich hab erstmal wie du gedacht und nach einer einfacheren Lösung gesucht aber nicht gefunden und dann hab ich das einfach so implementiert und anschließend hat mir, auf einem anderen Board, genau diese Lösung auch vorgeschlagen und somit hatte ich meine bestätigung...


Aber falls du eine elegantere Lösung findest, dann poste diese hier bitte...

mfg
yesso
 
Nun... auf jeden Fall sollte man den Aufwand minimieren. In dem Fall vielleicht die TreeNodes auf nur auf isExpanded hin untersuchen und die entsprechenden in der neuen Collection anpassen, aber elegant ist das nicht.
Gibt es einen alternativen Container für die TreeNodeCollection ? Dann könntest du diese zur Datenhaltung nutzen.
Oder du schreibst deinen eigenen Typ, der die TreeNodeCollection erbt, das Attribut isExpanded enthält und beim kopieren mit nimmt. (Was ja eigentlich die TreeNodeCollection schon tun sollte)

_
 
Zurück