根据行数据更新DatagridView单元格背景颜色

时间:2010-08-04 12:44:54

标签: c# .net winforms datagridview c#-4.0

您好我有一个DatagridView,我希望它根据每行中的数据更改背景颜色。

实施例。

|人1 |人2 |人3 |

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

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

在第一行中,我希望它使“100”具有红色背景颜色和“200”绿色。 要么。最低值=红色最高=绿色

现在的问题是我使用BindingList作为我的数据,并使用INotifyPropertyChanged更新异步。因此,每次更新其中一个值时,我都需要检查一些方法。

DataGridView是否有任何有用的事件?

2 个答案:

答案 0 :(得分:9)

Subclass DataGridView并覆盖OnCellFormating(),在这里你可以检查单元格值并适当地设置颜色。

关于以下关于使用相应事件的评论,是的,你可以这样做,但虚拟方法具有更好的性能,子类化DataGridView将网格的所有行为封装在一个地方。

答案 1 :(得分:1)

不太确定这是否是最佳解决方案,但希望它有所帮助:在datagrid视图中为每个数据源项注册PropertyChanged事件。在事件处理程序中,您可以根据更改的值执行所需的操作 如果您使用数据源的绑定列表,请注册ListChanged以处理新项目。