有没有办法将数据从 IQueryable 加载到 Combobox 中而无需循环?

发布于 2024-12-16 10:26:18 字数 152 浏览 0 评论 0原文

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

Basically I have an IQueryable of data that I wish to bind a string (for display) and an int (for data selected) into a combobox so the user can select the appropriate choice. Normally I would just create the combobox, and then loop through the IQueryable adding items to the combobox. But it occurred to me that there might be a way to do this without looping.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

云淡风轻 2024-12-23 10:26:18

ComboBox DataSource 设置为该对象。

set the ComboBox DataSource to the object.

近箐 2024-12-23 10:26:18

您的意思是 Windows 窗体 ComboBox 吗?您可以使用 AddRange

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

创建存储 ID 和名称的匿名对象。不过,仅使用原始对象并剪切 .Select 可能会更容易。

Do you mean a Windows Forms ComboBox? You could use AddRange:

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

to create anonymous objects storing the ID and name. It may be easier to just work with your original object, though, and cut out the .Select.

叹梦 2024-12-23 10:26:18

您指的是哪种技术(WPF、HTML、WinForms)?
WPF 的变体是:

我假设这个组合绑定到这样的模型:

 class SomeViewModel {

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

 }

但是,实际上我认为最好将您的项目控件绑定到 IList<>您可以使用 .ToList() 扩展方法来转换,而不是 IQueriable<>

Which technology do you mean (WPF, HTML, WinForms)?
Variant for WPF is:

<ComboBox ItemsSource="{Binding ItemsQueriable}"/>

I assume this combo is bound to model like this:

 class SomeViewModel {

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

 }

But, actually I think it is better to bind your items controls to IList<> instead of IQueriable<>, you can use .ToList() extension method to convert

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文