WPF Datagrid / Datatable: Große Anzahl von Zeilen

Ich habe ein Datagrid verbunden Datatable, der laden muss eine sehr große Menge von Zeilen.

Dinge zu beschleunigen, lade ich 10% von den Zeilen, und das Formular anzeigen. Die meisten der Zeit, die der Benutzer braucht nur die 10% (sind Sie die letzten Einträge). In einem hintergrund-thread geladen werden, die restlichen 90% der Zeilen in einer anderen datatable (SecondData). Dann habe ich merge die beiden datatables:

FirstData.BeginLoadData()
FirstData.Merge(SecondData, False)
FirstData.EndLoadData()

Dies funktioniert gut, aber der Merge-Vorgang dauert sehr lange. Wenn ich den Vorgang umkehren (Verschmelzung SecondData mit FirstData), dauert es viel weniger Zeit. Aber dann muss ich wieder zuordnen itemsource (SecondData) an das Datagrid-Steuerelement, und der Benutzer verliert die aktuelle Scroll-position, ausgewählten Zeile, etc.

Ich auch versucht, indem die Zeilen direkt an FirstData aus dem hintergrund-thread, und es scheint zu funktionieren. Aber wenn ich scrollen Datagrid danach, bekomme ich freezes und "DataTable internen index ist beschädigt", nach, dass.

Was wäre der richtige Weg, dies zu tun?

InformationsquelleAutor Muis | 2010-09-22
Schreibe einen Kommentar