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ść?

questionAnswers(2)

yourAnswerToTheQuestion