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