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();
каждый раз вы меняли источник данных. Возможно, вам придется делать это и с таблицей данных.