我有一个 ListBox 可能有许多行的模板DB的记录,包括一个 Image, 绑到一个 ObservableCollection<MyItem>.有时候,收集可能保持成千上万的项目。

性能是巨大的,但是的滚动是默认的神经质的行为。我想它已经顺利滚动,所以我选中的 ScrollViewer.CanContentScroll.

现在我已经顺利滚动,但是表现是骇人听闻:数据检索,在一个单独线,该线迅速完成,但它需要10-20秒钟的结果显示在 ListBox.我认为这是因为取消 ScrollViewer.CanContentScroll 改变的基础 VirtualizingStackPanel 一个规则 StackPanel 因此,这是装的整个集合前显示的结果。

所以我的问题是这个:我怎么保留的顺利滚动而不牺牲 VirtualizingStackPanel 行为和性能吗?

有帮助吗?

解决方案

当你取消CanContentScroll你 失去虚拟化.答案是真正令人沮丧:现在没有外出的解决方案:(.

PS:这不是第一次在这里发表,询问 这个问题.

其他提示

如果您使用.NET 4.5(或4.0,如果你愿意砍了一下),然后还有一个答案在这里

[注意@ Guilluame的评论在这里这个答案之前的方式,但略读的答案时,它不是特别明显。

scroll top