获取 CheckBoxList 的 ValueMembers

Get ValueMembers of a CheckBoxList

我有一个 linq 查询,我使用 Windows 表单绑定到复选框列表

var webresourcesFromCRM = from w in orgSvcContext.CreateQuery("webresource")                                                   
                          select new
                          {
                              webresourceid = w["webresourceid"],
                              name = w["name"]
                          };

我在绑定时使用了 DisplayMember 和 ValueMember 属性

cblWebResources.DataSource = webresourcesFromCRM;
cblWebResources.DisplayMember = "name";
cblWebResources.ValueMember = "webresourceid";

以上代码效果很好。但是我的问题是我想获得选中项目的 ValueMember 。 cblWebResources.SelectedItems 或 cblWebResources.SelectedIndices 的所有组合我都试过了。我只是希望能够遍历我选择的项目并将每个 ValueMember 放入 windows 表单 app.

我试过其他类似的帖子,但运气不好,这是一个 windows 表单应用程序

var selectedItems = checkedUsers.Items.Cast<ListItem>()
                                      .Where(li => li.Selected)
                                      .Select(li => int.Parse(li.Text));
int sum = selectedItems.Sum();
string items = string.Join(",", selectedItems);

A CheckedListBox 方便地同时具有:

 var c = checkedListBox1.CheckedItems;
 var s = checkedListBox1.SelectedItems;

现在你得到了交集:

var cs = c.Cast<object>().Where(i => s.Contains(i));
var sc = s.Cast<object>().Where(i => c.Contains(i));

很遗憾CheckedListBoxes不支持MultiSelect,所以第二种形式应该更好。

遗憾的是它也没有绑定 Checkboxes 的选项 :-(

我需要将我托运的物品放入一个物体中

foreach(cblWebResouces.CheckedItems.Cast() 中的变量项) { MessageBox.Show(item.webresourceid); }