2011-01-17 4 views
0

У меня есть DataGridView с BindingSource, так как это источник данных и DataTable как источник данных BindingSource. Когда я загружаю данные и мою сетку, я создал стиль на некоторых клетках по телефону:AcceptChanges on DataTable возвращает типы ячеек


grid.Rows[0].Cells[0].Style.BackColor = Color.Red; 

Моя BindingSource имеет некоторую логику на CurrentChanged события. Когда текущая строка изменяется в конце этой логики, я вызываю AcceptChanges в моем DataTable. К сожалению, это приводит к тому, что стиль ячейки этих строк возвращается в исходное состояние.

Как заставить сетку не возвращать стили ячеек в DataTable.AcceptChanges? Возможно, я делаю что-то неправильно.

ответ

1

Является ли цвет ячейки зависимым от некоторых атрибутов или столбцов привязки к данным?

Я думаю, когда вы вызываете AcceptChanges, он вызывает перерисовку DataGridView по мере изменения его базового источника данных.

Что я попробую использовать RowDataBound или CellFormatting событие и изменить цвет (столбца соответствующей строки) в обработчике.

+0

Спасибо. Проблема решена – bodziec

+0

Просто обратите внимание на других людей, которые приходят к этому вопросу при поиске решения моей проблемы: я устанавливаю пустую строку в конце моего DataGridView на ReadOnly, так как пользователям не разрешено создавать новые строки, но им разрешено изменять существующие. Я обнаружил, что AcceptChanges очищает состояние ReadOnly пустой строки, хотя изменения относятся к совершенно другой строке! Я не нашел решение, кроме как восстановить состояние ReadOnly после каждого вызова AcceptChanges. – JonP

Смежные вопросы