博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Phone 7(WP7)开发 ListBox的分页加载
阅读量:6605 次
发布时间:2019-06-24

本文共 2614 字,大约阅读时间需要 8 分钟。

  ListBox的分页加载,相信在很多应用中大家都已经见到过了。但是在WP7开发中,这个功能开发起来似乎是不那么直观(因为没有那么个ScrollEnd事件),我在学习开发这个功能的时候第一步是先百度谷歌Bing的,为了不重复造轮子。其实有很多人都在问这个问,大家的共同关注点只有一个,就是如何判断ListBox的滚动条滚动到了底部,所以,此篇文章我也就只围绕如何判断滚动到底来展开了,其他的部分暂略。我记得曾经看到了一个英文的文章实现了这个效果,写的很复杂,好多好多的类,本人比较懒,就没继续看……,后来从某中文论坛看到了一个非常简单的方法,不得不感叹我们中国人的聪明才智啊。

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)        {            List
scrollBarList = GetVisualChildCollection
(lstBizs); foreach (ScrollBar scrollBar in scrollBarList) { if (scrollBar.Orientation == System.Windows.Controls.Orientation.Horizontal) { } else { scrollBar.ValueChanged += new RoutedPropertyChangedEventHandler
(verticalScrollBar_ValueChanged); } } } private void verticalScrollBar_ValueChanged(object sender, RoutedEventArgs e) { ScrollBar scrollBar = (ScrollBar)sender; object valueObj = scrollBar.GetValue(ScrollBar.ValueProperty); object maxObj = scrollBar.GetValue(ScrollBar.MaximumProperty); if (valueObj != null && maxObj != null) { double value = (double)valueObj; double max = (double)maxObj - 1.0; if (value >= max) { //读取下一页的数据 } } }

 

public static List
GetVisualChildCollection
(object parent) where T : UIElement { List
visualCollection = new List
(); GetVisualChildCollection(parent as DependencyObject, visualCollection); return visualCollection; } private static void GetVisualChildCollection
(DependencyObject parent, List
visualCollection) where T : UIElement { int count = VisualTreeHelper.GetChildrenCount(parent); for (int i = 0; i < count; i++) { DependencyObject child = VisualTreeHelper.GetChild(parent, i); if (child is T) { visualCollection.Add(child as T); } else if (child != null) { GetVisualChildCollection(child, visualCollection); } } }

  

 

  这个代码非常的简洁精悍,并非我原创,但我直接拿过来之后发现它运行的很好,真的很好用。我唯一的一点修改就是“double max = (double)maxObj - 1.0; ”,这里说明一下,value是ScrollBar当前的值,max可想而知是最大值,但是如果当用户把滚动条拉到底部才开始加载下页数据,会明显的出现一个停顿,所以我设定的规则是“当用户把滚动条拉到倒数第一行的时候就开始加载下页数据”,1.0的这个值按需求修改就好了。

转载于:https://www.cnblogs.com/vistach/archive/2011/12/21/Windows_Phone_WP7_ListBox_ScrollBar_Multi_Page.html

你可能感兴趣的文章
2015 成长计划
查看>>
沈阳一饭店凌晨爆燃,燃气报警器时刻预防
查看>>
Redis 与 数据库处理数据的两种模式
查看>>
VUE2中axios的使用方法
查看>>
assert 断言
查看>>
CS 229 notes Supervised Learning
查看>>
2018.10.27-dtoj-3996-Lesson5!(johnny)
查看>>
DataTable转换成json字符串
查看>>
iOS网络协议----HTTP/TCP/IP浅析
查看>>
ubuntu 12.04 安装 redis
查看>>
IOS_CGRect
查看>>
Sql Server中不常用的表运算符之APPLY(1)
查看>>
【DM642】ICELL Interface—Cells as Algorithm Containers
查看>>
linux所有命令失效的解决办法
查看>>
力扣算法题—085最大矩阵
查看>>
svs 在创建的时候 上传文件夹 bin obj 这些不要提交
查看>>
mysql-用命令导出、导入表结构或数据
查看>>
Tinkphp
查看>>
EntityFrameworkCore 一对一 && 一对多 && 多对多配置
查看>>
How to temporally disable IDE tools (load manually)
查看>>