Обновление цвета фона ячейки DatagridView на основе данных строки - PullRequest
6 голосов
/ 04 августа 2010

Привет, я получил DatagridView и хотел бы изменить цвет фона в зависимости от данных в каждой строке.

Пример.

|Человек 1 |Человек 2 |Персона 3 |

| ---- 100 ---- | --- 200 ----- | ----- 150 ---- |

| ---300 ---- | --- 100 ----- | ------ 50 ---- |

В первом ряду я бы хотел, чтобы "100" былокрасный цвет фона и "200" зеленый.Или же.Самое низкое значение = красное самое высокое = зеленое

Теперь дело в том, что я использую BindingList для своих данных, и он обновляется асинхронно с INotifyPropertyChanged.Поэтому мне нужен какой-то способ проверки каждый раз, когда обновляется одно из значений.

Есть ли в DataGridView какое-либо событие, которое было бы полезным?

Ответы [ 2 ]

9 голосов
/ 04 августа 2010

Подкласс DataGridView и переопределение OnCellFormating (), здесь вы можете проверить значение ячейки и правильно установить цвета.

Что касается комментариев ниже об использовании соответствующего события, да, вы можете сделать это, но виртуальныйметод имеет лучшую производительность, а подклассы DataGridView инкапсулируют все поведение вашей сетки в одном месте.

1 голос
/ 04 августа 2010

Не уверен, что это оптимальное решение, но надеюсь, что оно поможет: зарегистрируйтесь для события PropertyChanged для каждого элемента источника данных в представлении таблицы данных. В вашем обработчике событий вы можете выполнить необходимые действия на основе измененных значений.
Если вы используете список привязки для своего источника данных, зарегистрируйтесь в ListChanged для обработки новых элементов.

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