[WIN]為何Bind資料後,顯示出來的卻是System.Data.DataRowView?

[WIN]checkedListBox Bind資料要注意的地方!

朋友問他使用CheckedListBox去Bind DataTable,結果顯示出來的每行卻是System.Data.DataRowView,如下圖!

image

再詳細看一下它的Code,如下,

checkedListBox1.DisplayMember = "d1"; 
checkedListBox1.ValueMember = "d2"; 

checkedListBox1.DataSource = dt_temp;

 

原來是因為他把指定DataSource放在最後面,所以就變成了那個樣子了!

所以在Bind CheckedListBox時,順序很重要哦!

DataSource屬性一定要先指定哦!

測試範例如下,

DataTable dtResult = new DataTable();
dtResult.Columns.Add("d1", Type.GetType("System.String"));
dtResult.Columns.Add("d2", Type.GetType("System.String"));
dtResult.Rows.Add("d1v1", "d2v1");
dtResult.Rows.Add("d1v2", "d2v2");
dtResult.Rows.Add("d1v3", "d2v3");
checkedListBox1.DataSource = dtResult;
checkedListBox1.DisplayMember = "d1";
checkedListBox1.ValueMember = "d2"; 

 

先指定DataSource屬性,裡面的CheckBox就正常顯示了!

image

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^