这个问题网上有很多例子,不过大多数都是扯犊子...根本实现不了.还有的能实现 但是要有一个公用变量的DataSet耗费资源.研究了一下发现 CheckListBox ITEM其实是一个DataRowView......里面包含了数据源的所有信息...对没有搞错 是所有信息.滴入你的数据源包含了 ID,Name,DESC,但绑定的时候至绑定ID 和 Name 但是 用ITEM转换成DataRowView时候 你可以找到这个DR["DESC"]的数据...这样就解决了取值问题.......
例子:一个 CheckListBox CHK_LST_BOX 数据源DataSet ds 包含 Id,Name,Desc
绑定:
CHK_LST_BOX .DataSource = ds.Tables[0];
CHK_LST_BOX .DisplayMember = "Name";
CHK_LST_BOX .ValueMember = "id";
CHK_LST_BOX .Refresh();
获取选定值:
DataRowView
for (int i = 0; i < CHK_LST_BOX .Items.Count; i++)
{
if (CHK_LST_BOX .GetItemChecked(i))
{
DataRowView dv = (DataRowView)CHK_LST_BOX .Items[i];
//选中的DESC dv.Row["desc"]
}
}