2013-04-27 6 views
0

У меня есть Devexpress Xtragrid, в котором я группировал строки на основе определенного столбца. Я отдал синий цвет обратно в группу и установил ShowGroupExpandCollpaseButton как ложный. В левой части большинства дочерних строк в сетке отображается цвет, который я установил для цвета группы. Есть ли способ удалить этот цвет. Пожалуйста, направляйте меня.Row Group Issue in Row Backgroud Color

enter image description here

+1

То есть колонна Группа правильно? – Bit

+0

Да, есть ли какие-либо ограничения, чтобы скрыть это? – 17CrazyBrain

ответ

1

Для выполнения этой задачи, пожалуйста, удалите BackColor из GroupRow внешнего вида. Затем используйте CustomDrawGroupRow событие, чтобы выделить содержание группы строк, как вам нужно:

// 1) remove GroupRow style 
    //gridView1.Appearance.GroupRow.BackColor = Color.Blue; 

    gridView1.OptionsView.ShowGroupExpandCollapseButtons = false; 

    // 2) use the CusomDrawGroupRow 
    gridView1.CustomDrawGroupRow += gridView1_CustomDrawGroupRow; 
} 

void gridView1_CustomDrawGroupRow(object sender, RowObjectCustomDrawEventArgs e) { 
    GridView gridView = sender as GridView; 
    GridGroupRowInfo groupRowInfo = e.Info as GridGroupRowInfo; 
    string groupRowText = gridView.GetGroupRowDisplayText(e.RowHandle); 
    int textStart = groupRowInfo.DataBounds.Left + 4; 
    Rectangle groupRowTextBounds = new Rectangle(
      textStart, 
      groupRowInfo.Bounds.Top, 
      groupRowInfo.Bounds.Right - textStart, 
      groupRowInfo.Bounds.Height 
     ); 
    e.Cache.FillRectangle(Brushes.Blue, e.Bounds); // draw blue backgrownd 
    e.Appearance.DrawString(e.Cache, groupRowText, groupRowTextBounds); 
    e.Handled = true; 
} 
+0

Благодарим вас за решение. Это работает. Теперь, если мы группируем, сетка оставляет дополнительное пространство в начале каждой дочерней строки. Есть ли способ удалить это ?. Можете ли вы предложить какое-то решение? – 17CrazyBrain

+0

@ 17CrazyBrain Укажите [indent] уровня (http://documentation.devexpress.com/#WindowsForms/DevExpressXtraGridViewsGridGridView_LevelIndenttopic) следующим образом: 'gridView1.LevelIndent = 0;' – DmitryG

+0

Thats отлично работает. Большое спасибо ... – 17CrazyBrain

0

Вы должны быть в состоянии скрыть группу из вида, установив следующим образом:

this.gridView1.OptionsView.ShowGroupedColumns = false; 
+0

Благодарим вас за решение. Но, таким образом, это не сработает. – 17CrazyBrain