如何在Devexpress Grid中更改单元格的背景颜色?

Lav*_*avy 6 c# grid devexpress xtragrid

我有一个40列的devexpress xtragrid.我将每个单元格值与其他单元格进行比较,如果它不同,那么我想更改单元格背景颜色.我尝试使用GridViewInfo,但它只占用屏幕上可见的列.但我想为所有列做.(不使用RowCellStyle)你有解决方案吗?谢谢!

Sid*_*med 6

您需要处理GridView 的CustomDrawCell,这里是一段代码,它根据其他列valoe(年龄列)更改Name列的颜色

private void gridView_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e)
    {
        if (e.Column == colName)
        {
            var age = Convert.ToInt32(gridView.GetRowCellValue(e.RowHandle, colAge));
            if (age < 18)
                e.Appearance.BackColor = Color.FromArgb(0xFE, 0xDF, 0x98);
            else
                e.Appearance.BackColor = Color.FromArgb(0xD2, 0xFD, 0x91);
        }
    }
Run Code Online (Sandbox Code Playgroud)

祝好运


Dav*_*New 5

挂钩 xtragrid 的 RowStyle 事件。

private void maintainDataControl_RowStyle(object sender, RowStyleEventArgs e)
{
    if (e.RowHandle >= 0)
    {
        GridView view = sender as GridView;

        // Some condition
        if((string)view.GetRowCellValue(
            e.RowHandle, view.Columns["SomeRow"]).Equals("Some Value"))
        {
            e.Appearance.BackColor = Color.Green;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)