4

我将数据模型实体添加到我的项目publishingCompanyEntities中,并在我的 winform 中添加了 ComboBox。但是当我想将我的作者列表绑定到我的组合框中,因为数据源已填充数据,但cmoAuthors.Items.Count返回 0 但cmoAuthors.DataSource.Count返回 2 项

        publishContext = new publishingCompanyEntities();
        cmoAuthors.DataSource = publishContext.Authors;
        cmoAuthors.DisplayMember = "FirstName";
4

2 回答 2

15

您需要添加.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 重绘自身,并在此过程中更新其 Items 集合。

于 2013-04-09T10:40:32.327 回答
3

您需要提供 valuemember 属性。价值会员

cmoAuthors.DisplayMember = "FirstName";
cmoAuthors.ValueMember = "yourValueProperty";
于 2013-04-09T10:01:18.767 回答