Как изменить цвет фона ячейки в сетке Devexpress?

У меня есть devexpress xtragrid с 40 столбцами. Я сравниваю каждое значение ячейки с другим, и если оно отличается, я хочу изменить цвет фона ячейки. Я пытаюсь с GridViewInfo, но он принимает только столбцы, которые видны на экране.Но я хочу сделать это для всех колонок.(Не с RowCellStyle) У вас есть решение для этого? Спасибо!

3 ответов


подключитесь к событию RowStyle вашего xtragrid.

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;
        }
    }
}

вам нужно обработать CustomDrawCell вашего GridView, вот фрагмент кода, который изменяет цвет столбца Name, на основе другого столбца valoe (столбец age)

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);
        }
    }

удачи