您好我有一个DatagridView,我希望它根据每行中的数据更改背景颜色。
实施例。
|人1 |人2 |人3 |
| ---- ---- 100 | --- 200 ----- | ----- 150 ---- |
| ---- ---- 300 | --- 100 ----- | ------ 50 ---- |
在第一行中,我希望它使“100”具有红色背景颜色和“200”绿色。 要么。最低值=红色最高=绿色
现在的问题是我使用BindingList作为我的数据,并使用INotifyPropertyChanged更新异步。因此,每次更新其中一个值时,我都需要检查一些方法。
DataGridView是否有任何有用的事件?
答案 0 :(得分:9)
Subclass DataGridView并覆盖OnCellFormating(),在这里你可以检查单元格值并适当地设置颜色。
关于以下关于使用相应事件的评论,是的,你可以这样做,但虚拟方法具有更好的性能,子类化DataGridView将网格的所有行为封装在一个地方。
答案 1 :(得分:1)
不太确定这是否是最佳解决方案,但希望它有所帮助:在datagrid视图中为每个数据源项注册PropertyChanged事件。在事件处理程序中,您可以根据更改的值执行所需的操作 如果您使用数据源的绑定列表,请注册ListChanged以处理新项目。