ListBox, VirtualizingStackPanel e rolagem suave no WPF
eu tenho umListBox
que pode ter muitas linhas de registros de banco de dados modelados, incluindo umImage
, ligado a umObservableCollection<MyItem>
. Às vezes, a coleção pode conter milhares de itens.
O desempenho é ótimo, mas a rolagem é o comportamento saltitante padrão. Eu gostaria que tivesse rolagem suave, então eu desmarcadaScrollViewer.CanContentScroll
.
Agora tenho rolagem suave, mas o desempenho é horrível: os dados são recuperados em um thread separado, e o thread é concluído rapidamente, mas leva de 10 a 20 segundos para os resultados serem exibidos noListBox
. Eu suponho que isso é porque desmarcandoScrollViewer.CanContentScroll
muda o subjacenteVirtualizingStackPanel
para um regularStackPanel
e por isso está carregando a coleção inteira antes de exibir os resultados.
Então, minha pergunta é a seguinte: como faço para manter a rolagem suave sem sacrificar oVirtualizingStackPanel
comportamento e desempenho?