Ich entwickle eine App, die verwendet wird, um mit 20k + Elemente in WPF-Listbox angezeigt zu arbeiten, so dass sie offensichtlich in Seiten aufgeteilt werden müssen.Paging mit CreateDerivedCollection
Meine aktuelle Lösung ist ein bisschen laggy:
Ich beantrage einen Filter mit Asynchron-Befehl Paraller.ForEach
auf alle Artikel und ich gesetzt MatchesFilter
Eigenschaft. Das funktioniert gut:
Dies ist schnell, hält die Benutzeroberfläche ansprechend und Sie können sehen, wie sich der Count in WPF Label schnell ändert.
Wenn Ende Filterung, ich (auf Hauptthread):
Items.Clear();
foreach (var s in FilteredItems.Skip((CurrentPage - 1) * temsPerPage).Take(ItemsPerPage))
Items.Add(s);
Und das ist, wo mein Problem ist. Jedes Element wird zusammen mit einem Bild angezeigt, das asynchron von einer URL geladen wird. Der Clear()
Teil friert die Benutzeroberfläche auf merkliche Weise ein. Ich habe 250 Artikel pro Seite (es sollte nicht weniger sein, weil der Benutzer in der Lage sein sollte, anhand des Bildes mit seinem Auge nach einem Gegenstand zu suchen).
Gibt es einen besseren Weg, dies zu tun? Ich weiß, über DynamicData
, aber das nutzt RxUI 6.x.
Ich bekomme Fehler beim Verweisen Reactive.Interfaces 2.5.5. Welche Version sollte ich verwenden? –
Die neueste Version auf 4.x, da sie auf Rx 2.x basiert. https://www.nuget.org/packages/DynamicData/4.10.1.1194 – Erlend
Danke. Nur aus Neugier, ist es möglich, in reinem RxUI zu erreichen? –