将数据从XML导入DataGridView

本文关键字:导入 DataGridView XML 数据 | 更新日期: 2023-09-27 18:26:44

我正在从XML文档导入数据以填充DataGridView。在导入过程中,我更改了一些单元格的背景颜色。然而,当我添加行时,单元格的颜色没有正确更新(我得到一个灰色单元格)。我不确定是否有一个地方我应该使DataGridView无效,以使单元格正确显示。

我应该指出,我的DataGridView不是数据绑定的。

一些参考代码:

DataGridViewRow row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
for(int j = 0; j < dataGridView1.ColumnCount; ++j)
{
   if(j == 2)
   {
      row.Cells[j + 1].Style.BackColor = layer.Color;
   }
}
this.dataGridView1.Rows.AddRange(row);

将数据从XML导入DataGridView

您可能需要覆盖CellFormatting或RowPostPaint事件并在那里执行。

我想我在尝试给DataGridView上色时遇到了同样的事情,这就是我解决它的方法

private void gridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
    foreach (DataGridViewRow row in gridView.Rows)
        if (row.Cells["Status"].Value.ToString() == "Posted")
            if (row.Cells["Priority"].Value.ToString() == "High")
                foreach (DataGridViewCell cell in row.Cells)
                    cell.Style.BackColor = Color.LightPink;
            else
                foreach (DataGridViewCell cell in row.Cells)
                    cell.Style.BackColor = Color.Yellow;
}

单元格格式:

private void gridItems_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.CellStyle.BackColor != Color.Yellow && e.CellStyle.BackColor != Color.LightPink)
        e.CellStyle.BackColor = Color.LightGreen;
}

我希望这能有所帮助!