我有一个ListBox
可能有很多行模板化数据库记录,包括一个Image
绑定到一个ObservableCollection<MyItem>
. 有时收藏品可以容纳数千件物品。
性能很棒,但滚动是默认的跳跃行为。我希望它有平滑滚动,所以我取消选中ScrollViewer.CanContentScroll
.
现在我可以平滑滚动了,但性能却很糟糕:数据是在单独的线程中检索的,线程很快完成,但结果需要 10-20 秒才能显示在ListBox
. 我认为这是因为取消选中ScrollViewer.CanContentScroll
会将底层更改VirtualizingStackPanel
为常规StackPanel
,因此它会在显示结果之前加载整个集合。
所以我的问题是:如何在不牺牲VirtualizingStackPanel
行为和性能的情况下保持平滑滚动?