我正在尝试使用c#(winforms)获取列表框中所有项目的值。我有一个包含多个项目的组合框,这是从数据源填充的,我在组合中提交了一个选项,我想将这些值存储在列表框中。
IQueryable clientes = getcompanies();
combo1.DataSource = companies;
combo1.DisplayMember = "name";
combo1.ValueMember = "id";
private void combo1_SelectionChangeCommitted(object sender, EventArgs e)
{
listBox1.Items.Add(combo1.SelectedItem);
listBox1.DisplayMember = "name";
listBox1.ValueMember = "id";
}
public IQueryable getcompanies()
{
var company= from c in context.companies
select new
{
c.id,
name= c.fname+" "+ c.lname
};
return company;
}
我对这段代码没有任何问题,当我从组合中选择项目并将其添加到列表框中时,只有displaymember属性可见,就像我想要的那样。 问题是我不知道如何从列表框中的所有项目获取所有valuemember属性。有什么想法吗?
答案 0 :(得分:2)
如果你这样做。
var items = ((List<string>)listBox1.Items);
您需要将List更改为公司的数据类型
然后,您应该能够使用foreach循环遍历项目,然后您可以正常访问属性ID
答案 1 :(得分:1)
问题在stackoverflow上回答:Get back anonymous type