如果大家在GG或者百度中搜索WP7 ListBox的滚动加载时 一定会搜到大量重复的答案:
即监听 ListBox的MouseMove事件,然后在MouseMove事件被触发,通过检测ListBox.VerticalOffset(当前滚动条位置) 与 ListBox.ScrollableHeight(滚动条能达到的最大位移) 的间距来判断是否应该加载新的数据。。。。。。
如果你真的照这种方法做了,那么你会觉得这个方法怎么时灵时不灵
Why?
因为 ListBox.MouseMove 事件是只有你的手指触摸到屏幕并且滑动屏幕时才能被触发,只要你的手指一旦离开屏幕,即使ListBox滚动的再快。对不起,那与MouseMove事件没啥关系了。
所以我们这里放出一个更好的事件监听 就是ListBox.LayoutUpdated事件
这个事件与MouseMove不一样的在于只要ListBox进行了滚动,该事件一定被触发(OK 这就是我们要的效果
)
在这个事件中 我们依然与MouseMove事件处理一样,判断ListBox.VerticalOffset(当前滚动条位置) 与 ListBox.ScrollableHeight(滚动条能达到的最大位移)的间距就能轻松完成我们的目标了
即监听 ListBox的MouseMove事件,然后在MouseMove事件被触发,通过检测ListBox.VerticalOffset(当前滚动条位置) 与 ListBox.ScrollableHeight(滚动条能达到的最大位移) 的间距来判断是否应该加载新的数据。。。。。。
如果你真的照这种方法做了,那么你会觉得这个方法怎么时灵时不灵
Why?
因为 ListBox.MouseMove 事件是只有你的手指触摸到屏幕并且滑动屏幕时才能被触发,只要你的手指一旦离开屏幕,即使ListBox滚动的再快。对不起,那与MouseMove事件没啥关系了。
所以我们这里放出一个更好的事件监听 就是ListBox.LayoutUpdated事件
这个事件与MouseMove不一样的在于只要ListBox进行了滚动,该事件一定被触发(OK 这就是我们要的效果
在这个事件中 我们依然与MouseMove事件处理一样,判断ListBox.VerticalOffset(当前滚动条位置) 与 ListBox.ScrollableHeight(滚动条能达到的最大位移)的间距就能轻松完成我们的目标了