Die Erhöhung WPF ObservableCollection-Leistung

Derzeit habe ich zwei WPF Listboxen imitieren die folgenden Funktionen

Die Erhöhung WPF ObservableCollection-Leistung

(Quelle: psu.edu)

Ich bin mit 2 ObservableCollections, damit Benutzer wählen, welche Elemente, die Sie benötigen (Flexibilität ist hier der Schlüssel). Das Hauptproblem ist, dass ich Tausende von Elementen, die zusammengefasst sind in beiden Listboxen. Alles in allem das design funktioniert wirklich gut (mit ein paar Dutzend Elemente), aber mein Stolperstein ist, wenn ein Benutzer Kopien alle verfügbaren Elemente von Links nach rechts, wie der Bildschirm friert ein (Zeit für die Ausführung in einem anderen thread?).

Blick auf ObservableCollection fehlt es ein AddRange-Methode, und es gibt verschiedene Implementierungen zur Verfügung auf dem internet. Ich weiß auch das CollectionChanged-Ereignis ist unnötig gefeuert zu werden, als jedes Element wird kopiert entleeren Leistung schrecklich.

Es kann gut sein, dass ich um Benutzern zu erlauben, wählen Sie aus Gruppen von mehr als 10 000 Artikel in die Zukunft, die klingt wie eine schlechte Idee, aber ist nicht verhandelbar, wie die Gruppierung auf die listbox (CollectionViewSource) funktioniert wirklich gut, hat aber den Nebeneffekt der Umstellung aus die die Virtualisierung konnte sowohl die Listboxen

Was kann ich tun zur Verbesserung der Leistung beim laden einer listbox mit tausenden von Elementen, wenn die Datenbindung an eine ObservableCollection? Gibt es irgendwelche AddRange geben Sie Implementierungen, die würden Sie empfehlen? Ist die einzige Wahl, die ich hier habe, diese laufen auf einem hintergrund-thread, das scheint teuer, denn ich bin nicht das laden von Daten aus einer Datenbank?

InformationsquelleAutor Vault | 2009-09-09
Schreibe einen Kommentar