C# 手动填充和选择组合框项目
我不敢相信这项简单的任务有多困难 我有以下代码:C# 手动填充和选择组合框项目,c#,winforms,combobox,datasource,C#,Winforms,Combobox,Datasource,我不敢相信这项简单的任务有多困难 我有以下代码: cboCountry.ValueMember = "ID"; cboCountry.DisplayMember = "Title"; var countries = from c in context.Set<sc_Countries>() orderby c.Title select new { c.ID, c.Title }; cbocontry.ValueMemb
cboCountry.ValueMember = "ID";
cboCountry.DisplayMember = "Title";
var countries = from c in context.Set<sc_Countries>()
orderby c.Title
select new { c.ID, c.Title };
cbocontry.ValueMember=“ID”;
cbocontry.DisplayMember=“Title”;
var countries=来自context.Set()中的c
orderby c.标题
选择新的{c.ID,c.Title};
现在,我想用这个集合填充组合框cbocontry
,然后选择ID(值)“US”的列表项
我可以使用cbocontry.items.AddRange(countries.ToList())
将项目添加到组合框中,但是cbocontry.SelectedValue=“US”
没有效果
接下来,我尝试使用cbocontry.DataSource=countries
添加集合,但这只是让控制列表为空
当然,必须有一个简单的方法来完成这项琐碎的任务。有人能提供缺少的成分吗?除非您在
LINQ
语句中调用ToList()
,否则您实际上不会从数据库中获取数据:
var countries = (from c in context.Set<sc_Countries>()
orderby c.Title
select new { c.ID, c.Title }).ToList();
编辑:
现在我正在阅读您的问题,您似乎已经在调用
countries.ToList()
,但使用的是Items.AddRange
。当我尝试的时候,我看到的和你做的一样。似乎您必须设置数据源
,而不是使用项。AddRange
,才能使SelectedValue
起作用。是的,这是有效的!谢谢我使用的是ToList()
,但只使用了AddRange()
。这很有效,但我无法设置SelectedValue
。另外,我习惯于在ASP.NET中使用DropDownList,这不要求数据源位于列表中。但对于ComboBox,它确实如此。我正在跑步。再次感谢。
cboCountry.ValueMember = "ID";
cboCountry.DisplayMember = "Title";
cboCountry.DataSource = countries;
cboCountry.SelectedValue = "US"