C# Winform 關於ListView控制元件繫結DataTable
阿新 • • 發佈:2019-01-09
今天用到ListView控制元件,這裡總結一下ListView控制元件繫結DataTable的方法
下面需要特別注意的是,繫結的過程中實現繫結控制元件的column的屬性,再進行item的繫結。
與DataGridView不同的是,不能直接使用DataSourse繫結,
再者,繫結第一個Items的時候一定要例項化一個Item進行單獨繫結,因為第一個Item與後面的不用即Item與SubItem的區別,下面的程式碼中也給出了相應的註釋
private void LoadData() { string sql = @"select * from room"; DataTable dt = DBUtil.getDataTable(sql); this.listView1.Columns.Clear(); //好習慣,先清除再新增保證資料的一致性 this.listView1.Columns.Add("roomid"); this.listView1.Columns.Add("typeids"); this.listView1.Columns.Add("price"); this.listView1.Items.Clear(); int length = dt.Rows.Count; for (int i = 0; i < length; i++) { ListViewItem lvi = new ListViewItem(dt.Rows[i]["roomid"].ToString()); //ListView的第一個Item作為主項需要單獨新增 string typeid = dt.Rows[i]["typeids"].ToString(); switch (typeid) { case "1": lvi.ImageIndex = 0; //設定每個Item型別繫結的圖片型別 break; case "2": lvi.ImageIndex = 1; break; case "3": lvi.ImageIndex = 2; break; default: break; } lvi.SubItems.Add(dt.Rows[i]["typeids"].ToString()); //後面新增的Item都為SubItems ,即為子項 lvi.SubItems.Add(dt.Rows[i]["price"].ToString()); this.listView1.Items.Add(lvi);//最後進行新增 } }