【问题标题】:Get value from listbox item从列表框项中获取值
【发布时间】:2011-09-28 22:23:39
【问题描述】:

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

【问题讨论】:

    标签: c# winforms combobox listbox


    【解决方案1】:

    如果你这样做。

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

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

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

    【讨论】:

    • 谢谢乔纳森,公司是 IQueryable 数据类型,我收到转换错误(ObjectCollection' to 'System.Linq.IQueryable')
    • 没有更多代码我帮不上什么忙,基本上你有错误的类型,我说替换 List。在 deubg 模式下单步执行代码,看看 listBox1.Items 是什么并将其转换为那个。
    • 我在问题中添加了更多细节。 Listbox.items 是 ObjectCollection 数据类型。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-23
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多