有没有办法将IQueryable中的数据加载到Combobox而不进行循环?

时间:2011-11-14 18:10:07

标签: c# combobox iqueryable

基本上我有一个IQueryable数据,我希望将字符串(用于显示)和int(用于选择数据)绑定到组合框中,以便用户可以选择适当的选项。通常我会创建组合框,然后遍历IQueryable添加项目到组合框。但是我发现可能有一种方法可以在没有循环的情况下做到这一点。

3 个答案:

答案 0 :(得分:2)

ComboBox DataSource设置为对象。

答案 1 :(得分:0)

你的意思是Windows Forms ComboBox吗?您可以使用AddRange

combobox.BeginUpdate();
combobox.DisplayMember = "Name";
combobox.Items.AddRange(myQueryable.Select(q => new { q.Id, q.Name }));
combobox.EndUpdate();

创建存储ID和名称的匿名对象。但是,使用原始对象可能更容易,并删除.Select。

答案 2 :(得分:0)

您的意思是哪种技术(WPF,HTML,WinForms)? WPF的变体是:

< ComboBox ItemsSource =“{Binding ItemsQueriable}”/>

我认为这个组合绑定到这样的模型:

 class SomeViewModel {

      public IQuriable<SomeEntity> ItemsQueriable { get; private set; }

 }

但是,实际上我认为最好将项目控件绑定到IList&lt;&gt;而不是IQueriable&lt;&gt;,您可以使用.ToList()扩展方法进行转换