从列表框项中获取值

时间:2011-09-28 22:23:39

标签: c# winforms combobox listbox

我正在尝试使用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属性。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

如果你这样做。

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

您需要将List更改为公司的数据类型

然后,您应该能够使用foreach循环遍历项目,然后您可以正常访问属性ID

答案 1 :(得分:1)

问题在stackoverflow上回答:Get back anonymous type