绑定项更改时DataGridView不更新?

时间:2009-09-16 15:25:43

标签: .net data-binding

我有一个像我这样绑定的DataGridView:

companies = new BindingList<Company>(PersistenceManager.Instance.RetrieveAll<Company>(SessionAction.BeginAndEnd));
bindingSource.DataSource = companies;
potentialInvestorDataGridView.DataBindings.Add("DataSource", bindingSource, "PotentialInvestors");

问题是当我添加到PotentialInvestors列表

Company company = bindingSource.Current as Company;
company.PotentialInvestors.Add ( new Investor ( ) );

数据网格不会使用新行进行更新。我试过打电话

bindingSource.ResetCurrentItem();
potentialInvestorDataGridView.EndEdit();
potentialInvestorDataGridView.Refresh();

但似乎没有任何更新数据网格。 (如果我关闭对话框并重新打开它,现在会显示项目。)

我需要做些什么才能正确更新?

1 个答案:

答案 0 :(得分:1)

如果基础数据源(PersistenceManager.Instance.RetrieveAll<Company>(...)的结果)支持通知机制,则只会传播更改。我非常确定,为了使其工作,数据源本身必须支持IBindingList。您是否有数据源实现的接口列表?

修改

您可以通过在gridview上调用Reset来手动调用ListChanged事件(网格正在查看的事件)上的ResetBindings值。但是,这将导致网格刷新所有数据,而不仅仅是已更改的内容。