『原创』.Net CF下ListView的数据绑定

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

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

 

ContractedBlock.gif ExpandedBlockStart.gif 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绑定时,都用过什么方式或者方法~

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

 

ContractedBlock.gif ExpandedBlockStart.gif 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开发中,数据绑定的经验,谢谢。也希望我的这篇文随笔能给大家带来一些帮助。

转载于:https://www.cnblogs.com/longqi293/archive/2009/08/18/1549418.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值