首页 ┆网站地图 ┆游戏资讯 ┆天龙八部 ┆资源下载 ┆淘宝网购物 ┆淘宝数码产品 ┆淘宝数码相机 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页 > NET专区 > 其他 > WPF开发之ListView进行大数据量异步加载实现
WPF开发之ListView进行大数据量异步加载实现
来源: 发布时间:2012-01-04 浏览:人次  字体:[  
WPF开发之ListView进行大数据量异步加载实现, 在测试大数据量加载的时候,我们有两件事情需要完成,第一个就是考虑到大数据量,我们得利用异步方式来进行,否则界面及其容易被阻塞住;第二个就是由于数据量过大,导入时间可能比较长,如何通知用户当前导入的进度。

     针对问题一,可以考虑利用委托的异步方式进行;针对问题二,可以考虑到线程和UI交互的方式。

     首先要说的是大数据量的导入,和WinForm不同的是,在导入数据到ListView之前,我们需要先将数据导入到一个DataTable中,然后利用GridView来处理DataTable,最后绑定即可,见代码流程:

        /// <summary>
/// 开始对BindData函数进行异步处理
/// </summary>
private void BeginBindData()
{
........
}

/// <summary>

/// 对BindData函数进行异步处理完毕,向用户发送通知
/// </summary>

/// <param name="iar"></param>
private void EndBindData(IAsyncResult iar)
{
........
}

/// <summary>

/// 考虑到BindData导入数据比较耗时,采用了BeginBindData来进行异步加载
/// </summary>
private void BindData()
{
........
}


这就是整个异步加载方式的执行流程,下面见具体代码:

 #region Invoke the Binding Data method asynchorously

/// <summary>

/// 开始对BindData函数进行异步处理
/// </summary>

private void BeginBindData()
{
BindDataAsync bindData = new BindDataAsync(BindData);
IAsyncResult iar = bindData.BeginInvoke(new AsyncCallback(EndBindData), bindData);
tsStatus.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate
{
tsStatus.Content = "正在加载中。。。";
}));
}

/// <summary>

/// 对BindData函数进行异步处理完毕,向用户发送通知
/// </summary>

/// <param name="iar"></param>
private void EndBindData(IAsyncResult iar)
{
tsStatus.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate
{
tsStatus.Content = "加载完毕。。。";
}));
BindDataAsync bindData = (BindDataAsync)iar.AsyncState;
bindData.EndInvoke(iar);
}
共2页: 上一页 1 [2] 下一页
↓下一篇:没有了
 
相 关 文 章 发布商链接
·Silverlight删除文件出现发生不可访...
·WPF编程设置全屏代码
·Revit二次开发之怎么复制删除元素?
·Revit二次开发实现动态拖动/鼠标跟随...
·wpf编程解决popup不随window一起移动...
·Silverlight的AutoCompleteBox控件怎...
·解决IIS7部署运行WCF服务报HTTP Erro...
·IIS7.0怎么给网站配置伪静态页?
·Reflector软件试用过期后重置注册表...
·Silverlight怎么获取程序集的引用信...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)淘宝店铺一条街淘宝运动鞋淘宝网热门男装
网名:  验证码:  【所有评论】【↑返回顶部
评 分:12345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·怎么在64位电脑上安装32位的....
·IBatisNet配置动态SQL的相关...
·怎么让SilverLight程序部署在...
·Wince实现IPhone平滑滚动的效...
·mobile调用手机摄像头的程序...
·如何让让Silverlight应用程序...
·安装WinCE6.0的开发环境全攻...
·CE6和CE5在Platform Builder...
·WINCE自带的驱动程序被修改后
·图解Mobile5.0的环境配置和开
·WinCE分析Flash分区原则和块...
·WINE中文字体显示方块的解决...
推 荐 主 题
java专题.net开发php学习
数据库windows7Word技巧
天龙八部QQ技巧IT职场
javascriptPhotoShop 淘宝购物
图 文 推 荐
Reflector软件试用过期后重置注册表照样用Reflector软件试用过期后重置注册表照样用
WinCE实现更换桌面墙纸和图标的代码WinCE实现更换桌面墙纸和图标的代码
图解WinCE中Emulator的使用介绍图解WinCE中Emulator的使用介绍
热 门 文 章
·安装WinCE6.0的开发环境全攻...
·图解VS2008安装使用jQuery类...
·实例详解WinCE中Display驱动...
·wince修改桌面背景色及其修改...
·如何让让Silverlight应用程序...
·实例讲解PDA入门开发的过程,...
·实例讲解ASP.NET抽象工厂模式...
·图解WinCE6.0添加自定义的工...
·WINE中文字体显示方块的解决...
·wince中BIB文件的详细介绍
·图解如何使用WinCE的BSP Clon...
·重新对IIS进行注册的命令使用
热 门 关 键 字
 网站首页 - 关于本站 - 加入收藏 - 网站地图 - 淘宝购物 - 在线留言 - 广告服务 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .