【发布时间】:2011-11-14 18:10:07
【问题描述】:
基本上,我有一个 IQueryable 数据,我希望将一个字符串(用于显示)和一个 int(用于选择的数据)绑定到一个组合框中,以便用户可以选择适当的选项。通常我只会创建组合框,然后循环通过 IQueryable 将项目添加到组合框。但我突然想到,可能有一种方法可以在不循环的情况下做到这一点。
【问题讨论】:
标签: c# combobox iqueryable
基本上,我有一个 IQueryable 数据,我希望将一个字符串(用于显示)和一个 int(用于选择的数据)绑定到一个组合框中,以便用户可以选择适当的选项。通常我只会创建组合框,然后循环通过 IQueryable 将项目添加到组合框。但我突然想到,可能有一种方法可以在不循环的情况下做到这一点。
【问题讨论】:
标签: c# combobox iqueryable
将ComboBox DataSource 设置为对象。
【讨论】:
ComboBox 有 2 个属性,DataTextField 和 DataValueField。设置好DataSource后别忘了拨打DataBind()
你的意思是Windows Forms ComboBox?你可以使用AddRange:
combobox.BeginUpdate();
combobox.DisplayMember = "Name";
combobox.Items.AddRange(myQueryable.Select(q => new { q.Id, q.Name }));
combobox.EndUpdate();
创建存储 ID 和名称的匿名对象。不过,只使用原始对象并删除 .Select 可能会更容易。
【讨论】:
您指的是哪种技术(WPF、HTML、WinForms)? WPF 的变体是:
我假设这个组合绑定到这样的模型:
class SomeViewModel {
public IQuriable<SomeEntity> ItemsQueriable { get; private set; }
}
但是,实际上我认为最好将你的项目控件绑定到 IList 而不是 IQueriable,你可以使用 .ToList() 扩展方法来转换
【讨论】: