我想为Silverlight列表框中的项目创建动态加载。
当用户通过滚动条(或鼠标滚轮)到达项目结尾时,我想要为下一个10(或一些不同的)项目调用新请求。
问题是列表框上的哪个事件可以处理这个问题?
答案 0 :(得分:2)
Silverlight 3中的UI虚拟化取得了很多进展,但我认为没有任何简单的方法可以实现基于滚动ListBox的这种类型的数据虚拟化。
一种可能的解决方案是将ListBox子类化并处理LayoutUpdated事件以访问内部ScrollViewer。然后,您可以访问该ScrollViewer的垂直ScrollBar并注册以处理ValueChanged事件。如果ScrollBar值发生了变化并且处于最大值(完全向下滚动),则可以请求下一组项目并将它们添加到ListBox的基础集合中。
查看此blog post的想法。不确定它是否是最好的方法,但它似乎是一个可行的解决方案。
答案 1 :(得分:1)
使用Bea Stolnitz关于Silverlight中数据虚拟化的文章,开始here。