Devexpress GridControl行反向着色
本文关键字:GridControl Devexpress | 更新日期: 2023-09-27 18:26:33
我试图更改索引行的背景颜色,但这似乎很奇怪。基本上,我会这样做,这在默认的.net数据网格视图中是可能的。
int packageIndex = Packages.IndexOf(SomePackage);
gridPackages.Rows[packageIndex].BackColor = Color.Green;
在devexpress GridControl中这样做似乎真的很烦人。不存在名为"Rows"的此类属性。
gridPackages.gridView.SelectRow(packageIndex);
gridPackages.gridView.Appearance.SelectedRow.BackColor = Color.Green;
这是可行的,但当您更改行时,颜色将变为默认颜色。这意味着只有选定的行显示为彩色。我想动态更改颜色,而不是在加载时更改。
我知道我在问一个基本的问题,但它根本不起作用。任何帮助都将不胜感激。。
尝试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;
}
}
}
所以我在一个朋友的帮助下想出了这样的主意,它很管用。当你再次触发事件时,你只需要刷新网格;
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;
}
}