DEV GridControl绑定的数据,ID相同的行显示相同的颜色(当可以确定ID的值时)

public BindingList<StudentDC> StudentList
{
get { return this.bindingSourceList.DataSource as BindingList<StudentDC>; }
set { bindingSourceList.DataSource = value; }
}

private void FrmGridTest_Load(object sender, System.EventArgs e)
{
StudentList = GetStudentList();


}

private BindingList<StudentDC> GetStudentList()
{
BindingList<StudentDC> list = new BindingList<StudentDC>(){
new StudentDC(){Class = "Class 1",ID = 1,Name = "zhangsan"},
new StudentDC(){Class = "Class 1",ID = 1,Name = "zhangsan"},
new StudentDC(){Class = "Class 2",ID = 2,Name = "lisi"},
new StudentDC(){Class = "Class 3",ID = 3,Name = "wangwu"},
new StudentDC(){Class = "Class 3",ID = 3,Name = "wangwu"},
new StudentDC(){Class = "Class 3",ID = 3,Name = "wangwu"}
};

return list;
}

private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
var tmpList = GetStudentList();
var idList = (from item in tmpList select item.ID).ToList();
idList = new List<int>(idList.Distinct());
var tmp = gridView1.GetRowCellValue(e.RowHandle, "ID");
if (gridView1.GetRow(e.RowHandle) == null)
{
return;
}

for (int i = 0; i < idList.Count; i++)
{
if (Convert.ToInt32(gridView1.GetRowCellValue(e.RowHandle, "ID")) == 1)
{
e.Appearance.BackColor = Color.Bisque;
}

if (Convert.ToInt32(gridView1.GetRowCellValue(e.RowHandle, "ID")) == 2)
{
e.Appearance.BackColor = Color.CornflowerBlue;
}

if (Convert.ToInt32(gridView1.GetRowCellValue(e.RowHandle, "ID")) == 3)
{
e.Appearance.BackColor = Color.SkyBlue;
}

}
}

posted @ 2012-07-24 23:16  沙耶  阅读(1365)  评论(0编辑  收藏  举报