首先,需要说明的是,在网络上已经有很多关于ListView数据绑定的文章了,但是,大部分是针对Winform的,那么对于很多新手来说可能对从Winform移植代码到.net cf平台会感觉很难,因为很多属性或者事件没有了,不支持了,最近公司做到一个项目,好多ListView需要绑定数据,并且是每个ListView都有不同的列(字段)绑定,唉,下文就是我的一个实践,写出来和大家分享一下。

  我们来看一段代码吧,我们先获取数据源到一个DataTable中,然后,根据Listview中的列数,以及列名(通常,列名已经告诉你应该绑定什么字段到此列了~),我们进行字段的绑定设置:

Code
        private void DataBind()
        {
            DataTable dt = bllMission.GetData("");//获取数据源
            string[] str = new string[6];//6是界面上ListView的列数,已知的
            missLV.Items.Clear();
            foreach (DataRow row in dt.Rows)//遍历每一行数据,添加相应的字段值到相应的列下
            {
                str[0] = row["miss_id"].ToString();
                str[1] = row["miss_name"].ToString();
                str[2] = row["miss_state"].ToString();
                str[3] = row["miss_contact"].ToString();
                str[4] = row["miss_contactTel"].ToString();
                str[5] = row["miss_address"].ToString();
                ListViewItem item = new ListViewItem(str);
                missLV.Items.Add(item);
            }
        }

  Ok,看完这段代码,想必大家都清楚了,可能你会觉得这样做数据绑定是不是太死板了,对!我们事先要设置界面中Listview的Column,然后根据Column的数量设置str字符串数组的大小,最后再把每行的数据中相应字段绑定到相应的列上。 

  但是,没有办法,可能在我们这个项目中,界面UI这一块是一组人专门做,然后另一组人专门绑定数据等业务逻辑操作。希望高手能提出自己的看法,分享一下自己的经验,一般在做Listview绑定时,都用过什么方式或者方法~

  之后,我觉得可以归纳成为一个公用类,这样就不用一遍又一遍的写这个绑定代码了,我的公用类如下:

Code
        /// <summary>
        /// listview数据邦定(指定字段绑定)
        /// 作者:Jack Fan
        /// </summary>
        /// <param name="dt">数据源DataTable</param>
        /// <param name="lvCounts">需要绑定的Listview的列数</param>
        /// <param name="field">需要绑定的字段名称,用半角逗号隔开,字段数应该与ListView列数对应</param>
        /// <param name="lv">需要绑定数据的ListView控件的ID</param>
        public static void ListViewBind(DataTable dt, int lvCounts, string field, ListView lv)
        {
            string[] str = new string[lvCounts];
            lv.Items.Clear();
            string[] fields = Utils.SplitString(field,",");//SplitString类是用来分割形如“abc,def,higk”字符串的,分割结果放入一个字符串数组中
            try
            {
                foreach (DataRow dr in dt.Rows)
                {
                    for (int i = 0; i <= lvCounts; i++)
                    {
                        str[i] = dr[fields[i]].ToString();
                    }
                    ListViewItem item = new ListViewItem(str);
                    lv.Items.Add(item);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

  以上只是我在项目中的一个小小的经验或者实践,这个实践根据现有的ListView的列,来从数据源中选定特定字段来进行数据绑定,并不是最好的方法,我也看过一股脑的办法(根据数据源中的字段数量,先生成Listview列,然后又循环遍历,进行行数据添加,这就更简单了~)。希望高人能分享一些自己在.net cf开发中,数据绑定的经验,谢谢。也希望我的这篇文随笔能给大家带来一些帮助。

『原创』.Net CF下ListView的数据绑定相关推荐

  1. 『参考』.net CF组件编程(4)——为自定义组件添加工具箱图标!

    前言: 在前三篇的文章中,和大家一起创建了一个用于TCP连接检测的小组件,如果你记不得了,可以通过以下链接去回顾一下: 『参考』.net CF组件编程(1)--基础之后 『参考』.net CF组件编程 ...

  2. 微软云盘配合服务器,『原创』开源5T微软云盘搭建教程onedrive index

    前言 为什么搭建一个微软共享云盘?百度云.蓝奏云不好吗?百度云有会员限制功能,各种限制更是不少,蓝奏云速度超快,但是貌似不支持大文件.微软毕竟是大厂,可用的5T教育邮箱现在也很好搞到,之所以采用是因为 ...

  3. 『原创』+『参考』亲手实验:使用C#在PPC中播放声音

    今天,项目中要求用声音来提示用户程序的某个状态被激活了,发现,.Net CF下没有System.Media这种好东东鸟-,于是乎,股沟.百毒最后再来个ZZK,发现MSDN和小镇的文章都有提及在PPC下 ...

  4. 『原创』WM利用Google Weather API获取天气预报

    最近,项目忙得很,公司里杂事很多都跑到我这里,搞得我也不能专心的做项目,索性,今天抽空,玩了一玩谷歌的天气预报服务.相信通过这篇文章,能让大家了解在.net CF下如何发起一个http访问请求(Web ...

  5. 『原创』让.Net CF实现智能提示(AutoComplete)功能

    前言 最近,一直在做Winform方面的开发,有一个公交信息查询的场景,用户在起始站输入框输入部分站点名称,系统能够自动给他建议和提示,类似Google中的自动补全.智能提示之类的功能,在Winfor ...

  6. 『原创』+『参考』使用WMI在C#下获取U盘的永久不变的物理序列号

    近几天想做个只能在优盘里使用的程序,查了很多相关的获取优盘物理序列号的文章,发现基本没有几个现存的,于是就从一英文网站抄了个过来,原文名称:Retrieving Non-Volatile USB Se ...

  7. 『原创』用C++开发WM应用系列(2)——拨打电话

    用C++开发WM应用系列文章索引 引言: 在上一节中,我们通过了一个MFC智能设备程序项目,带大家一起走进了Native c++开发WM的大门,我们了解了如何为程序添加控件.事件,以及自定义自己的类. ...

  8. 『原创』+『参考』基于PPC的图像对比程序——使用直方图度量

    前言的前言: 最近小弟闲来无聊,就想到了在PPC上面来做个图像对比的小东东,查找各方资料,终于在今天初步完成了这个程序,现在整理之后和各位共勉.程序中还存在很多不足之处,大家尽管提出自己的意见和建议, ...

  9. 『原创』一个基于Win CE 5.0的Txt文件阅读器

    最近,拿到一台亲戚送的GPS导航仪,其系统是基于WinCE5.0的,所以我觉得可以写点小程序上去,上网一搜,还附带破解方法,把GPS破解后就变成一台屏幕超大的PDA了,于是我想用它看电子书,无奈,Wi ...

最新文章

  1. linux文件IO与内存映射:用户空间的IO缓冲区
  2. 精简教程版 | 100行代码入手天池CV赛事
  3. 《算法导论》中动态规划求解钢条切割问题
  4. 控制连接数量和密码保护-flashcom教程 密码保护
  5. rk3128屏幕占空比参数设置_rk3128 — spdif dts配置
  6. ubuntu管理开机启动项
  7. 开发rtmp直播流测试地址
  8. centeros安装mySQL
  9. vue3.0中使用echarts
  10. html读取fbx文件,读取Fbx文件中的信息.doc
  11. android horizontalscrollview属性,Android 实例讲解HorizontalScrollView实现左右滑动
  12. 国产linux系统 深度6,国产Linux系统深度Deepin体验
  13. 中西方对时间的差异_中西方时间表达的认知差异
  14. php菱形循环代码,PHP练习–用for循环打印空心菱形,for菱形_PHP教程
  15. Linux找回用户密码
  16. 智能垃圾桶(十一)——oled的显示(树莓派pico实现)
  17. mybatis按姓名或手机号搜索
  18. unity3d 模拟电脑实现_毕业论文 基于Unity3D的三维虚拟电脑组装实验系统开发
  19. excel 时间计算
  20. 中职计算机应用专业课程有哪些,中职计算机应用专业课程设置及考核方式改革...

热门文章

  1. C++ 后台程序实时性能监控
  2. Tensorflow实现多元线性回归
  3. 25. 合并两个排序的链表
  4. python的接口实现zope.interface示例
  5. LeetCode 28. 实现 strStr() (java)
  6. 【洛谷1341】无序字母对(欧拉回路)
  7. Myeclipse中左边的项目目录没了
  8. Tomcat下部署多个项目
  9. Unity StartCoroutine 和 yield return 深入研究
  10. HDU-5877-Weak Pair(树状数组+离散化+dfs)