DataGridView / DataTable | rowState не изменяется

У меня проблема с привязкой данных к DataGridView.

У меня есть класс MyDataGridView, который наследуется от DataGridView. Мой источник данных представления сетки данных - это объект BindingSource, который содержит DataTable в качестве источника данных.

Проблема в том, что, когда я делаю изменения через (мой) объект DataGridView - rowState остается "неизмененным" вместо измененного; даже если значения в DataTable изменились (это то, что делает мое обновление неработающим, так как он рассматривает rowState как неопределенное). Обратите внимание, что внесение изменений непосредственно в DataTable работает нормально.

Спасибо (:

3 ответа

Вы должны вызвать метод Validate формы, которая содержит сетку. Этот метод влияет на сетку, как если бы вы переместили фокус на другую строку в сетке.

Итак, после использования Google немного я обнаружил, что вызов DataTable.Rows[index].EndEdit() решает проблему. Я не уверен, должен ли я так поступить, но это решило проблему. (чтобы вызвать этот метод, я использую событие DataGridView.CellEndEdit).

Можете ли вы показать нам код класса MyDataGrdView, пожалуйста?

и я думаю, что я уже знаю решение: вам нужно перепривязать источник данных, чтобы элемент управления знал, когда обновлять

вызов DataGridView.DataBind(); каждый раз вы меняли источник данных. Возможно, вам придется делать это и с таблицей данных.

Другие вопросы по тегам