[英]ComboBox DataSource And Entity FrameWork
我将数据模型实体添加到名为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
Collection,然后检测到新的DataSource。 Invalidate()
强制Control重绘iself,并在此过程中更新其Items集合。
您需要提供valuemember属性。 ValueMember
cmoAuthors.DisplayMember = "FirstName";
cmoAuthors.ValueMember = "yourValueProperty";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.