微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用ComboBox的SelectedItem属性w / Linq匿名类型

在C#3.5中使用ComboBox显示LinQ查询的结果.当LinQ查询返回匿名类型时,如何设置组合框的selecteditem属性

我按照以下几行设置了组合框的数据源:

comboBox1.DataSource = from p in db.products
                   select p;
comboBox1.displayMember = "Name";
comboBox1.ValueMember = "ProductId";

如果我这样做,我可以通过以下方式选择所选项目:

comboBox1.SelectedItem = (from p in db.products 
                          where p.ProductId = 5 
                          select p).First();

问题是我想用匿名类型结果填充组合框,如:

comboBox1.DataSource = from p in db.products
                   select new
                   {
                     p.ProductId,p.Name
                   };

我实际使用的匿名类型比那更复杂,但它足以解释.

解决方法

如何将其转换为列表,然后从中选择正确的列表.由于SelectedItem似乎不起作用,您可能想尝试设置SelectedValue.

var productList = (from p in db.products
                   select new {
                      ProductId = p.ProductID,Name = p.Name
                   }).ToList();

comboBox1.DataSource = productList;
comboBox1.displayMember = "Name";
comboBox1.ValueMember = "ProductId";
comboBox1.SelectedValue = 5;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐