如何获取CheckedListBox勾选项的ValueMembers?

How to get ValueMembers of CheckedListBox Checked Items?

我有一个名为 CheckedListBox 的项目列表。而它的DataSource是一个数据table。我已将 DisplayMember 设置为 "Name",将 ValueMember 设置为 "NameInt"。有没有一种可靠的方法可以循环遍历此 CheckedListBox 并获取已检查项目的 ValueMember

for (int i = 0; i < dataSet.tblResources.Rows.Count; i++)
{
   clbResources.Items.Add(new Thing()
   {
       Key = dataSet.tblResources.Rows[i]["Key"].ToString(),
       Value = dataSet.tblResources.Rows[i]["Description"].ToString()
   }, isChecked);
}

这是我的一个项目。相应更改。

假设 public 属性 持有你的 DataTable:

public DataTable Table { get; set; }

注意 CheckedListBox 被命名为 Itemlist(以防发生编辑)- 假设 NameInt 属于 type int,我们可以遍历选中的项目,抓住索引,然后直接从源中获取关联的 ValueMember

List<int> checkedValueMembers = new List();

foreach (int index in Itemlist.CheckedIndices)
{
    checkedValueMembers.Add(Table.Rows[index].Field<int>("NameInt"));
}

注意:我是将值添加到列表中作为示例,但这应该能给您大致的想法..