繁体   English   中英

ComboBox数据源和实体框架

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM