组合框数据源和实体框架
本文关键字:实体 框架 数据源 组合 | 更新日期: 2023-09-27 18:08:06
我将数据模型实体添加到我的项目名为publishingCompanyEntities
,并在我的winform中添加了ComboBox。但当我想绑定我的作者列表到我的组合框作为数据源已填满数据,但cmoAuthors.Items.Count
返回0,但cmoAuthors.DataSource.Count
返回2项
publishContext = new publishingCompanyEntities();
cmoAuthors.DataSource = publishContext.Authors;
cmoAuthors.DisplayMember = "FirstName";
您需要将.ToList()
添加到Authors EntitySet
publishContext = new publishingCompanyEntities();
cmoAuthors.DataSource = publishContext.Authors.ToList();
cmoAuthors.DisplayMember = "FirstName";
cmoAuthors.Invalidate();
原因是EntitySet 不是一个实际的集合。这是一个查询(IQueryable
),似乎ComboBox不够聪明,无法检测到这一点。
调用ToList()
将publishContext.Authors
具体化为对象。
由于某种原因,ComboBox没有更新它的Items
集合,然后检测到一个新的数据源。Invalidate()
强制控件重新绘制自身,并在此过程中更新其Items集合。
您需要提供valuemember属性。ValueMember
cmoAuthors.DisplayMember = "FirstName";
cmoAuthors.ValueMember = "yourValueProperty";