『原创』.Net CF下ListView的数据绑定
首先,需要說明的是,在網絡上已經有很多關于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的数据绑定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库“裸奔”再引祸端:VOIPO数百万
- 下一篇: Surrounded Regions