Измените цвет фона ROW в DevExpress PivotGrid.

Я хочу изменить цвет фона всей строки на основе сделанных вычислений.

Проблема, с которой я сталкиваюсь в событиях CustomAppearance или CustomDrawCell, заключается в том, что он перебирает каждую ячейку и выполняет вычисления. Я хочу в основном изменить цвет строки в столбце с индексом 0, поэтому мне не нужно перебирать большой набор данных:

    private void pvtGrdCtrlSummaryGrid_CustomDrawCell(object sender, PivotCustomDrawCellEventArgs e)
    {                
            if (e.RowValueType == PivotGridValueType.Value && e.ColumnValueType == PivotGridValueType.GrandTotal && e.ColumnIndex == 0)
            {
              //Calculations made
              //Change the entire row color here
            }
     }

Таким образом, я могу изменить каждую отдельную ячейку, и она работает, как и ожидалось, но при прокрутке она очень медленная и вообще не прокручивается плавно.

Я использую сводную сетку в приложении С# WinForms.


person Peet vd Westhuizen    schedule 21.01.2016    source источник


Ответы (1)


Выполняйте расчеты в момент заполнения набора данных, а не в CustomDrawCell. Если не можете, то постарайтесь ограничить расчет только одним столбцом. Например :

if (e.Column.Name == bgcDIRECTION.Name)

Или добавить вспомогательный столбец, который по умолчанию будет нулевым, и освятить его в CustomDrawCell... только если он нулевой. Если он не нулевой, то содержит еще вычисленное значение.

person Majkl    schedule 21.01.2016
comment
Спасибо, я смог выполнить расчет в первой ячейке, а затем сохранить значение, перебирая остальные строки. - person Peet vd Westhuizen; 22.01.2016