ListBox, VirtualizingStackPanel, et Smooth Scrolling dans WPF
j'ai un ListBox
, qui pourrait avoir de nombreuses lignes de type "modèle" DB records, dont un Image
, lié à un ObservableCollection<MyItem>
. Parfois, la collection peut contenir des milliers d'objets.
la performance est grande, mais le défilement est le comportement de saut par défaut. Je voudrais qu'il ait un défilement lisse, donc je n'ai pas vérifié ScrollViewer.CanContentScroll
.
maintenant j'ai un scrolling en douceur, mais la performance est épouvantable: les données sont récupérées dans un séparez le fil, et le fil se termine rapidement, mais il faut 10-20 secondes pour que les résultats apparaissent dans le ListBox
. Je suppose que c'est parce que unchecking ScrollViewer.CanContentScroll
change le VirtualizingStackPanel
sous-jacent à un StackPanel
régulier et donc il charge la collection entière avant d'afficher les résultats.
alors ma question Est la suivante: Comment puis-je conserver le scrolling sans sacrifier le comportement et la performance VirtualizingStackPanel
?
2 réponses
lorsque vous décochez CanContentScroll, vous perdre la virtualisation . Et la réponse est vraiment frustrante: pour l'instant, il n'y a pas de solution miracle :(.
PS: ce n'est pas le premier post ici, demandant cette même question .