我有一个标准的Windows窗体datagridview。在其中我将从linq创建的列表中设置数据。我想根据每行的DataBoundItem值有条件地格式化行。我已经查看了如何从以前的stackoverflow线程中执行此操作,并且有多种解决方案基于以下内容:
foreach (DataGridViewRow row in dataGridViewSelect.Rows)
{
if (property.GetValue(row.DataBoundItem, null) != highlightOptions.Value)
{
row.DefaultCellStyle.BackColor = Color.Red;
row.DefaultCellStyle.ForeColor = Color.White;
}
else
{
row.DefaultCellStyle.BackColor = Color.Yellow;
row.DefaultCellStyle.ForeColor = Color.Black;
}
}
我尝试将此代码放在单元格格式化事件下并绑定数据之后。无论我把它放在哪里,所有行都被格式化为红色,尽管在运行代码时只有少数单元格激活红色格式。