Изменение цвета DataGridViewRow в DataView RowFilter

Цель

Чтобы отличать разные строки друг от друга на основе свойств объекта пользовательского класса. Например, если доступное состояние объекта недоступно, фоновый цвет строки должен отображаться желтым цветом. Точно так же, если для удаленного состояния объекта установлено значение true, фоновый цвет строки должен быть красным.

Текущая ситуация

У меня есть DataGridView, для которого DataSource установлен в DataView. Таблица DataView настроена на DataTable, заполненную данными пользовательским классом.

Я создал метод, который правильно устанавливает задние цвета (проверено, и он отлично работает). Однако этот метод выполняется для события DataGridView1.RowsAdded. По какой-то причине, даже если у меня есть 20 добавленных строк, событие проходит только дважды для индекса строки 0 и индекса строки 1.

Проблема

Мне нужно событие DataGridView, которое будет запускать мой метод каждый раз, когда добавляется строка или каждый раз, когда изменяется RowFilter в моем DataView. Как я могу это сделать?


person Alex    schedule 05.02.2014    source источник


Ответы (1)


Лучший способ справиться с пользовательским стилем строки/ячейки — подписаться на следующие события:

  1. RowPrePaint
  2. СтрокаПостКраска

Они поднимаются только при отображении строки.

person Bjørn-Roger Kringsjå    schedule 05.02.2014