Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 手动填充和选择组合框项目_C#_Winforms_Combobox_Datasource - Fatal编程技术网

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"