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