从列表框项目获取值

问题描述:

我试图从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属性。有任何想法吗?

回答过的问题在这里计算器:Get back anonymous type

如果你这样做。

var items = ((List<string>)listBox1.Items); 

你生病需要尽管使用foreach循环,然后你就可以访问propertie id作为正常项目变更清单公司

的数据类型,那么你应该能够循环

+0

感谢乔纳森,公司是一个IQueryable的数据类型和我得到一个转换错误(ObjectCollection”到‘System.Linq.IQueryable’) –

+0

没有更多的代码,我不能帮助不大,basicly你有错误的类型,我说替换列表。尽管在deubg模式下的代码,看看listBox1.Items是什么,并将其转换为。 –

+0

我在问题中增加了更多细节。 Listbox.items是ObjectCollection数据类型。 –