【发布时间】:2010-12-30 16:47:06
【问题描述】:
我想为 Silverlight 列表框中的项目创建动态加载。
当用户通过滚动条(或鼠标滚轮)到达项目末尾时,我想为接下来的 10 个(或一些不同的)项目调用新请求。
问题是列表框上的哪个事件可以处理这个?
【问题讨论】:
-
有什么问题?你被困在问题的某个部分了吗?你有没有尝试过不同的事情并失败了?他们是什么?
标签: .net silverlight user-interface
我想为 Silverlight 列表框中的项目创建动态加载。
当用户通过滚动条(或鼠标滚轮)到达项目末尾时,我想为接下来的 10 个(或一些不同的)项目调用新请求。
问题是列表框上的哪个事件可以处理这个?
【问题讨论】:
标签: .net silverlight user-interface
Silverlight 3 中的 UI 虚拟化有很多进步,但我认为没有任何简单的方法可以实现这种基于 ListBox 滚动的数据虚拟化。
一种可能的解决方案是继承 ListBox 并处理 LayoutUpdated 事件以访问内部 ScrollViewer。然后,您可以访问该 ScrollViewer 的垂直 ScrollBar 并注册以处理 ValueChanged 事件。如果 ScrollBar 值发生变化并且处于最大值(一直向下滚动),则您可以请求下一组项目并将它们添加到 ListBox 的基础集合中。
看看这个blog post 的想法。不确定这是否是最好的方法,但它似乎是一个可行的解决方案。
【讨论】:
从 here 开始,阅读 Bea Stolnitz 关于 Silverlight 中数据虚拟化的文章。
【讨论】: