ListBox, VirtualizingStackPanel i płynne przewijanie w WPF
mamListBox
które mogą mieć wiele wierszy rekordów DB z szablonami, w tym rekordyImage
, związany zObservableCollection<MyItem>
. Czasami kolekcja może pomieścić tysiące przedmiotów.
Wydajność jest świetna, ale przewijanie jest domyślnym zachowaniem. Chciałbym, aby mieć płynne przewijanie, więc odznaczyłemScrollViewer.CanContentScroll
.
Teraz mam płynne przewijanie, ale wydajność jest przerażająca: dane są pobierane w osobnym wątku, a wątek szybko się kończy, ale wyświetlanie wyników wListBox
. Zakładam, że dzieje się tak dlatego, że odznaczenieScrollViewer.CanContentScroll
zmienia podstawęVirtualizingStackPanel
do regularnegoStackPanel
a więc ładuje całą kolekcję przed wyświetleniem wyników.
Moje pytanie brzmi: jak zachować płynne przewijanie bez poświęcaniaVirtualizingStackPanel
zachowanie i wydajność?