devexpress控制元件中的gridControl設定某個單元格屬性
前提:有一列RepositoryItemCheckEdit複選框列,和一列RepositoryItemButtonEdit按鈕列,特定條件下這行的複選框和按鈕不可用。效果圖如下:
原理是在程式碼中宣告新的物件,給新的物件賦屬性值,再用新的物件替換原有的物件。
程式碼如下:
RepositoryItemCheckEdit _disItemCheck;//宣告用來替換‘選擇’列複選框的物件
RepositoryItemButtonEdit _disItemBtn;//宣告用來替換‘申領’列按鈕的物件
//此時間會逐行逐列遍歷單元格
private void gridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
{
//若當前進行到了“選擇”列,
if (e.Column.Name == "colCheck")
{
//將單元格中的物件賦值給新宣告的複選框物件
_disItemCheck = (RepositoryItemCheckEdit)e.RepositoryItem.Clone();
//設定只讀屬性
_disItemCheck.Enabled = false;
_disItemCheck.ReadOnly = true;
}
if (e.Column.Name == "colAPPLY")
{
_disItemBtn = (RepositoryItemButtonEdit)e.RepositoryItem.Clone();
_disItemBtn.Buttons[0].Enabled = false;
}
//如果當前行滿足條件則替換
if (lst[e.RowHandle].CHARGE == "已" && (lst[e.RowHandle].R == string.Empty || lst[e.RowHandle].R == null))
{
if (e.Column.Name == "colCheck")
{
e.RepositoryItem = _disItemCheck;
}
else if(e.Column.Name == "colAPPLY")
{
e.RepositoryItem = _disItemBtn;
}
}
}