LongListSelector
是否支持数据虚拟化?我在几个博客上看到它确实如此,但无法让它发挥作用。
以下是我尝试的内容:我向列表提供了IList
实施ItemsSource
。问题是列表调用GetEnumerator()
而不是this[int index]
来获取列表项。
所以我的问题是:如何为LongListSelector
实现数据虚拟化?
答案 0 :(得分:5)
正如您所说,即使在呈现IList类型时,LongListSelector仍然基于GetEnumerator。很可能需要重写控件以支持目的。虽然博客可能会说它支持它,但没有人说它是如何,所以我不倾向于相信它们。 LongListSelector的默认设置是渲染所有项目。
对于数据的加载,可以使用ObservableCollection逐步完成。我得到了一个example project,它显示了如何将ObservableCollection与LongListSelector结合使用。
基本上,这可以允许您逐步向组添加更多组和/或更多数据,并且UI应相应地更新。
答案 1 :(得分:1)
我查看了LongListSelector源代码,无法虚拟化后备存储。 LongListSelector通过foreach循环从组列表中加载每个项目。