У меня есть ListBox
, в котором может быть много строк шаблонных записей БД, включая Image
, привязанных к ObservableCollection<MyItem>
. Иногда коллекция может содержать тысячи предметов.
Производительность отличная, но прокрутка - это поведение по умолчанию. Я бы хотел, чтобы у него была плавная прокрутка, поэтому я снял отметку ScrollViewer.CanContentScroll
.
Теперь у меня плавная прокрутка, но производительность ужасна: данные извлекаются в отдельном потоке, и поток быстро завершается, но для отображения результатов в ListBox
требуется 10-20 секунд. Я предполагаю, что это потому, что снятие отметки ScrollViewer.CanContentScroll
меняет базовый VirtualizingStackPanel
на обычный StackPanel
и поэтому он загружает всю коллекцию перед отображением результатов.
Итак, мой вопрос заключается в следующем: как сохранить плавную прокрутку, не жертвуя поведением и производительностью VirtualizingStackPanel
?