我有一个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窗体应用程序中。
我试过其他帖子,但没有运气这是一个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);
答案 0 :(得分:4)
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
的选项: - (
答案 1 :(得分:0)
我需要将已检查的项目放入对象
foreach(cblWebResouces.CheckedItems.Cast()中的var项目) { MessageBox.Show(item.webresourceid); }