Moin,
Wieder mal hänge ich an einer Sache, die zwar zu Hauf im Internet diskutiert wurde, aber nicht so funktioniert, wie ich es erwarte bzw. mir wünsche.
Ich habe eine TreeView, in der sich Childs auf mehreren Ebenen befinden.
Nun möchte ich aus einem Click-Event heraus einen bestimmten Eintrag selektieren. Die TreeView soll den Pfad dahin dann auch visuell anzeigen, also die Parents quasi öffnen.
Da ich hier im Forum keine Bilder einbetten kann, verlinke ich mal kurz einen Ausschnitt des TreeView: TreeView
Den TreeViewItems habe ich im Tag-Attribut ihre ID hinterlegt, um nicht auf den Namen vergleichen zu müssen. Denn es kann zu gleich benannten Items in anderen Hierarchien kommen.
Wenn ich nun die ID bspw. 317 habe, dann befindet sich das Item mit dieser ID im Tag irgendwo auf der dritten Ebene.
Ich möchte nun dass dieses Item selektiert und die TreeView entsprechend geöffnet wird.
Wie gesagt, ich habe eine Menge im Netz gefunden, aber keine Lösung davon hat mit etwas angezeigt.
Viele Möglichkeiten sind auch schon allein deshalb durch das Raster gefallen, weil sie star auf zwei Ebenen geschrieben wurden.
Welche Möglichkeiten habe ich, dies rekursiv für eine unbestimmte Anzahl an Ebenen umzusetzen?
Danke
Arne
EDIT:
Habe noch ein wenig rumprobiert. Das Problem scheint darin zu liegen, dass ich die Childs nicht erfassen kann.
Ich habe mir mal zu Testzwecken parallel eine flache Liste mit den TreeViewItems befüllt und diese durchlaufen. Bei der ID 317 im Tag bricht er tatsächlich ab und lädt auch die korrekten Daten*.
Der TreeView expandiert trotz IsExpanded = true am Item nicht. Es gibt ja auch keine Verbindung zur flachen List-Collection, obwohl IsSelected = true greift?!
Mein Problem scheint zu sein, dass ich beim Durchlaufen der Items im TreeView immer nur an die oberste Ebene komme.
Selbst mit ItemContainerGenerator.ContainerFromItem() findet jedes Root-Item nur sich selbst.
Was mache ich falsch?
Wieder mal hänge ich an einer Sache, die zwar zu Hauf im Internet diskutiert wurde, aber nicht so funktioniert, wie ich es erwarte bzw. mir wünsche.
Ich habe eine TreeView, in der sich Childs auf mehreren Ebenen befinden.
Nun möchte ich aus einem Click-Event heraus einen bestimmten Eintrag selektieren. Die TreeView soll den Pfad dahin dann auch visuell anzeigen, also die Parents quasi öffnen.
Da ich hier im Forum keine Bilder einbetten kann, verlinke ich mal kurz einen Ausschnitt des TreeView: TreeView
Den TreeViewItems habe ich im Tag-Attribut ihre ID hinterlegt, um nicht auf den Namen vergleichen zu müssen. Denn es kann zu gleich benannten Items in anderen Hierarchien kommen.
Wenn ich nun die ID bspw. 317 habe, dann befindet sich das Item mit dieser ID im Tag irgendwo auf der dritten Ebene.
Ich möchte nun dass dieses Item selektiert und die TreeView entsprechend geöffnet wird.
Wie gesagt, ich habe eine Menge im Netz gefunden, aber keine Lösung davon hat mit etwas angezeigt.
Viele Möglichkeiten sind auch schon allein deshalb durch das Raster gefallen, weil sie star auf zwei Ebenen geschrieben wurden.
Welche Möglichkeiten habe ich, dies rekursiv für eine unbestimmte Anzahl an Ebenen umzusetzen?
Danke
Arne
EDIT:
Habe noch ein wenig rumprobiert. Das Problem scheint darin zu liegen, dass ich die Childs nicht erfassen kann.
Ich habe mir mal zu Testzwecken parallel eine flache Liste mit den TreeViewItems befüllt und diese durchlaufen. Bei der ID 317 im Tag bricht er tatsächlich ab und lädt auch die korrekten Daten*.
Der TreeView expandiert trotz IsExpanded = true am Item nicht. Es gibt ja auch keine Verbindung zur flachen List-Collection, obwohl IsSelected = true greift?!
Mein Problem scheint zu sein, dass ich beim Durchlaufen der Items im TreeView immer nur an die oberste Ebene komme.
Selbst mit ItemContainerGenerator.ContainerFromItem() findet jedes Root-Item nur sich selbst.
Was mache ich falsch?
Comment