2010-09-15 2 views
5

Ich muss Suchfunktion in WPF TreeView implementieren (grundsätzlich muss ich mich an die letzte Benutzerauswahl erinnern). Ich habe versucht verschiedene Ansätze vorgeschlagen, aber nichts funktioniert, wie virtualization in meinem TreeView aktiviert ist und Kindknoten nur geladen werden, wenn ein Elternknoten erweitert wird (Lazy Loading).Benötigen Sie ein Beispiel für WPF TreeView Suche mit Virtualisierung und Load On Demand

Wer weiß von einem Beispiel, das diese drei Dinge (Virtualisierung, Load-on-Demand und Suche) zusammen implementiert hat?

Antwort

3

Werfen Sie einen Blick auf this MSDN Forum-Thread, Bob von MS erklärt das Problem bei der Implementierung dieser Funktion.

die Ursache ist die VirtualizingStackPanel try ein Element für die Anzeige zu erzeugen, aber es hat einen Generator bereits in Ihrem Projekt die erweiterten Elemente erzeugen (in den OnTreeNodeExpanded Event-Handler). Es tritt Konflikt mit zwei Generatoren auf. VirtualizingStackPanel kann das erforderliche Element zur Laufzeit generieren, es auch erzeugen sie in BringIndexIntoView Methode. Der Code der StartAt Methode ist, den Generator zu überprüfen, wenn es nicht null ist, wirft die Ausnahme „nicht StartAt nennen kann, wenn Content-Generierung in Fortschritt ist“. So füllt die Probe alle Elemente an die gebundene Quelle in InitializeComponent(), und lassen Sie die BringIndexIntoView Methode den Container für den Artikel generieren.

Ein Beispiel, das das Problem reproduziert, ist ebenfalls in diesem Thread angehängt.

So gegenwärtig scheint es für diesen Ansatz keine Lösung zu sein :(

+1

Haben Sie es geschafft, eine Abhilfe zu finden? Ich habe das gleiche Problem –