【问题标题】:ItemsSource into ComboBox with Linq (WPF)使用 Linq (WPF) 将 ItemsSource 放入 ComboBox
【发布时间】:2017-04-05 08:00:52
【问题描述】:

我想在查询下方的 ComboBox 中设置为数据源。

cbLJoin.ItemsSource = (from ud in dataContext.UserDatas
                     join a in dataContext2.Autos
                     on ud.Id equals a.Id
                     select new
                     {
                         ud.Id,
                         ud.LastName,
                         a.AutoName,
                         a.Color
                     }).ToList();

但我得到了错误。

已更新,结果进入 ComboBox:

【问题讨论】:

  • 尝试将 linq 结果存储到某个变量中,然后将其分配给 itemsource。
  • 您不能将dataContextdataContext2 一起加入,这正是错误告诉您的内容。
  • 那么我怎样才能加入 2 个数据上下文?还有其他方法吗?
  • 该问题与所有当前指定的标签无关。请根据使用的 ORM 使用 entity-frameworklinq-to-sql

标签: wpf linq combobox datacontext itemssource


【解决方案1】:

当然,您不能在一个查询中加入 2 个数据上下文。 您可以进行 2 个查询并加入它们的结果。 无法测试,但我认为它应该可以工作。

var users = (from ud in dataContext.UserDatas
                 select new
                 {
                     ud.Id,
                     ud.LastName
                 }).ToList();

var autos = (from  a in dataContext2.Autos
                select new
                {
                    a.Id,
                    a.AutoName,
                    a.Color
                }).ToList();

var result = (  from ud in users
                    join a in autos on ud.Id equals a.Id
                    select new
                    {
                        ud.Id,
                        ud.LastName,
                        a.AutoName,
                        a.Color
                    }).ToList(); 

【讨论】:

  • 还有一个:为什么绑定到组合框后的结果与屏幕截图一样(更新后)
  • 那你的数据源有什么问题?
  • 我确实喜欢:cbLJoin.ItemsSource = 结果............结果显示在屏幕上......但应该只是:1,Abc,Kia,Red
  • 就是这样。据我所知,组合框将具有值字段和显示字段。您可以指定 Value field = Id,Display Field = LastName 或 AutoName...
猜你喜欢
  • 2013-06-30
  • 2015-04-07
  • 2013-02-03
  • 1970-01-01
  • 2011-09-01
  • 2014-01-26
  • 1970-01-01
  • 2011-12-17
  • 2020-01-30
相关资源
最近更新 更多