Вопрос

у меня есть ListBox который может иметь много строк шаблонных записей БД, включая Image, привязанный к ObservableCollection<MyItem>.Иногда коллекция могла содержать тысячи предметов.

Производительность отличная, но прокрутка — это поведение по умолчанию.Мне бы хотелось, чтобы прокрутка была плавной, поэтому я снял флажок ScrollViewer.CanContentScroll.

Теперь у меня плавная прокрутка, но производительность ужасная:данные извлекаются в отдельном потоке, и поток завершается быстро, но для отображения результатов в потоке требуется 10-20 секунд. ListBox.Я предполагаю, что это потому, что снятие флажка ScrollViewer.CanContentScroll меняет основу VirtualizingStackPanel регулярному StackPanel и поэтому перед отображением результатов загружается вся коллекция.

Итак, мой вопрос заключается в следующем:как сохранить плавную прокрутку, не жертвуя VirtualizingStackPanel поведение и производительность?

Это было полезно?

Решение

Если вы снимите флажок CanContentScroll, вы потерять виртуализацию.И ответ очень разочаровывает:Готового решения пока нет :(.

ПС:Это не первый пост здесь с вопросом этот самый вопрос.

Другие советы

Если вы используете .NET 4.5 (или 4.0, если хотите немного взломать), то есть ответ здесь.

[Обратите внимание, что комментарий @Guilluame был здесь задолго до этого ответа, но он не был особенно заметен при просмотре ответов.]

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top