DataGridView не обновляется при изменении связанных элементов? - PullRequest
1 голос
/ 16 сентября 2009

У меня есть DataGridView, который я связываю так:

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

Проблема в том, что я добавляю в список потенциальных инвесторов

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

Сетка данных не обновляется с новой строкой. Я пытался позвонить

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

Но, похоже, ничего не обновляет сетку данных. (Если я закрою диалоговое окно и снова открою его, элементы теперь отображаются).

Что мне нужно сделать, чтобы правильно обновить это?

1 Ответ

1 голос
/ 16 сентября 2009

Изменения будут распространяться только в том случае, если базовый источник данных (результат PersistenceManager.Instance.RetrieveAll<Company>(...)) поддерживает механизм уведомления. Я почти уверен, что для того, чтобы это работало, IBindingList должно поддерживаться на самом источнике данных. У вас есть список интерфейсов, которые реализует источник данных?

Редактировать

Вы можете вручную вызвать значение Reset для события ListChanged (то, что ожидает сетка), вызвав ResetBindings в виде сетки. Это, однако, заставит сетку обновлять всех данных, а не только то, что изменилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...