ListView控件的数据绑定与读取

ListView控件可以直接查看数据信息,使操作更加容易。这篇文章将告诉你C#中的ListView数据绑定控件的一些用法,希望对要用到ListView控件的新手朋友有所帮助。

Listview中添加表头

 

  在控制编辑列中添加表头

   //表头的样式
     listView1.GridLines = true;
     listView1.FullRowSelect = true;
     listView1.View = View.Details;
     listView1.Scrollable = false;
     listView1.MultiSelect = false;
     listView1.HeaderStyle = ColumnHeaderStyle.Clickable;
             
   //方法一
   //声明标题与创建对象
    ColumnHeader ch = new ColumnHeader();
    //标题
    ch.Text = "奥运参赛国家";
    //列宽,默认为60
    ch.Width = 60;
   //显示文本 对齐方式
    ch.TextAlign = HorizontalAlignment.Center;  

   //把标题添加到listview this.listView1.Columns.Add(ch); //后续列 ColumnHeader againCh...      //方法二
  
listView1.Columns.Add("ID", 50, HorizontalAlignment.Center);
  listView1.Columns.Add(
"国家", 50, HorizontalAlignment.Center);
  listView1.Columns.Add("金牌", 50, HorizontalAlignment.Center);   listView1.Columns.Add("银牌", 50, HorizontalAlignment.Center);   listView1.Columns.Add("铜牌", 60, HorizontalAlignment.Center);

Listview控件的数据绑定

  采用foreach遍历dtds的每一行记录,然后绑定到ListView的对应列里。

     private void BindDataToListView() 
        {
            //清理旧的数据
            this.listView1.Items.Clear();
            DataSet ds = 数据(database)//判断ds是否存在数据
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) 
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    int sor = Convert.ToInt32(dr["ID"].ToString());
                    string strNation = dr["Nation"].ToString();
                    string strGoldMedal = dr["GoldMedal"].ToString();
                    string strSilverMedal = dr["SilverMedal"].ToString();
                    string strBronzeMedal = dr["BronzeMedal"].ToString();
                    ListViewItem IvItem = new ListViewItem();
                    //ID
                    IvItem.Text = sor.ToString();
                    IvItem.Tag = dr;
                    //国家
                    IvItem.SubItems.Add(strNation.ToString());
                    //金牌
                    IvItem.SubItems.Add(strGoldMedal.ToString());
                    //银牌
                    IvItem.SubItems.Add(strSilverMedal.ToString());
                    //铜牌
                    IvItem.SubItems.Add(strBronzeMedal.ToString());
                    this.listView1.Items.Add(IvItem);
                }

            }
        }

  

  蒽,获取当前点击ListView中行的数据,然后显示出来:

        private void listView1_Click(object sender, EventArgs e)
        {
            if (listView1.Items.Count <= 0) return;

            if (listView1.SelectedItems.Count <= 0) return;

            int index = this.listView1.SelectedItems[0].Index;
            if (index < 0) return;
            DataRow dr = (DataRow)(this.listView1.Items[index].Tag);
            MessageBox.Show(dr["Nation"].ToString() + dr["GoldMedal"].ToString()); 
       MessageBox.Show(
this.listView1.SelectedItems[0].SubItems[1].Text.ToString());

      
//方法二
       MessageBox.Show(listView1.SelectedItems[0].SubItems[0].Text);
       MessageBox.Show(listView1.SelectedItems[
0].SubItems[1].Text);
       MessageBox.Show(listView1.SelectedItems[
0].SubItems[2].Text);

      //ListViewItem iv = new ListViewItem(ds.Tables[0].Rows[1][1].ToString());
  
      //iv.Tag = ds.Tables[0].Rows[1][1].ToString(); ////读取隐藏列
    
      //this.listView1.SelectedItems[0].Tag.ToString();
     }

隐藏列

  在上面第二中方法中有解决方法,可以读取被隐藏的列。

  在第二种方法中: lv = new ListViewItem(ds.Tables[0].Rows[i][1].ToString()); 意味着listview中的第一行的数据信息,

  lv.Tag=ds.Tables[0].Rows[i][0].ToString(); //代表隐藏列。

  读取隐藏列时,可以使用下面的代码来获取隐藏列的值。

  //this.listView1.SelectedItems[0].Tag.ToString(); 

 

 

 

原文地址:https://www.cnblogs.com/aehoo/p/BindDataToListViewInCsharp.html