2016-02-27 70 views
0

我已绑定数据网格视图和组合框我的表(这是由实体框架管理)更新不显示文本:组合框的数据源绑定时,数据在数据网格视图

eraDataGridView.DataSource = BillContext.Eras.Local.ToBindingList(); 
eraComboBox.DataSource = BillContext.Eras.Local.ToBindingList(); 
eraComboBox.DisplayMember = "Name"; 

和我已经创建了一个保存按钮的数据网格视图:

private void saveEras_Click(object sender, EventArgs e) { 
    BillContext.SaveChanges(); 
    saveEras.Enabled = false; 
} 

当我插入一个新行到数据网格图;如果我在完成编辑行之后选择另一行(通过单击另一行,按Tab或Enter键),然后单击保存按钮,所有操作都按预期工作,但如果按保存按钮而不更改行;组合框将有一个没有文本的新项目(这是新行但没有文本)。

如何使组合框在所描述的场景中显示新添加的行的文本?任何解决方法,将不胜感激。

+0

如果您创建一个新的行,但不改变它,那么它将代表一个新的,但空项目,将在'ComboBox'得到明显显示,正是因为它是 - 为空值。或者我错过了什么?如果你想避免这种行为,那么你应该在保存更改之前过滤并从'saveEras_click'处理程序中的底层集合中删除这样的空项目。你也可以尝试一些包装器集合,它将过滤这些项目的组合框,但空的项目仍然会到达数据库。 –

+0

我认为这是显而易见的,但在我描述的情况下,我改变行但显示空文本或显示我写的文本取决于编辑后选择另一行或不选择另一行并保存 – raven

+0

也许你的项目做没有实现INotifyProperyChanged? –

回答

0

在我的DAO类中实现INotifyPropertyChanged解决了这个问题。 more info