2013-08-06 2 views
2

Я пытаюсь изменить индексированную строку backroundcolor, но это кажется странным. В принципе, я прав, чтобы сделать это, что возможно в default .net datagridview.Devexpress GridControl row backcolor

int packageIndex = Packages.IndexOf(SomePackage); 
gridPackages.Rows[packageIndex].BackColor = Color.Green; 

кажется действительно раздражающим делать то же самое в devexpress GridControl. Нет такого свойства, называемого «Строки».

gridPackages.gridView.SelectRow(packageIndex); 
gridPackages.gridView.Appearance.SelectedRow.BackColor = Color.Green; 

вид работ, но когда вы меняете строку, цвет получает значение по умолчанию. Это означает, что только выбранная строка выглядит цветной. Я хочу изменить цвет динамически, а не на загрузку.

Я знаю, что задаю основной вопрос, но он просто не работает. Любая помощь будет оценена ..

ответ

3

так что я придумал, как это на помощь друга, и это работает. Когда вы снова запускаете событие, вам просто нужно обновить сетку;

gridPackages.gridView.RowCellStyle += gridView_RowCellStyle; 

private void gridView_RowCellStyle(object sender, RowCellStyleEventArgs e) 
     { 
      Package pac = Packages[e.RowHandle]; 
      if (PackagesInRoom.SingleOrDefault(t => t.PackageID == pac.PackageID) != null) 
      { 
       e.Appearance.BackColor = Color.Green; 
      } 
     } 
5

Попробуйте GridView_RowStyle событие изменить цвет фона подряд в

http://documentation.devexpress.com/#windowsforms/DevExpressXtraGridViewsGridGridView_RowStyletopic

gridView1.RowStyle += gridView1_RowStyle; 


private void gridView1_RowStyle(object sender, 
DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e) { 
    GridView view = sender as GridView; 
    if(e.RowHandle >= 0) { 
     bool isRed = Convert.ToBoolean(view.GetRowCellDisplayText(e.RowHandle, view.Columns["Category"])); 
     if(isRed) { 
     e.Appearance.BackColor = Color.Red; 
     }    
    } 
} 
+0

Я не думаю, что он будет работать для динамического достижения строк, таких как «Ряды [0]», как вы думаете? на самом деле, как вы собираетесь это сделать в моем случае? – Ktt

+0

Не так, вам нужно найти условие для всей сетки, например, если e.RowHandle == index then RED else TRANSPARENT – Zyku

+0

как вы можете запустить событие? gridView1_RowStyle (??, ??) – Ktt