我遇到一个情况是,Devespress的gridControl中,我有一列用到了RepositoryItemButtonEdit,但是这个按钮不是每一行都要出现的,有些Cell中的ButtonEdit是需要隐藏的,
但是很难直接对每一个RepositoryItem的ButtonEdit作操作(由于gridControl重绘时,原来的buttonEdit会消失,会绘制一个新的buttonEdit),只能对Column的reposityItem进行操
作,但这样操作会影响到每一行的Cell。
后来Google到了解决办法:
1)可以重载gridView的CustomDrawCell事件
private void gridView1_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e)
{
if (ConditionIsMet())
{
e.Graphics.Clear(e.Appearance.BackColor);
e.Handled = true;
}
}
private void gridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
{
if (ConditionIsMet())
{
e.RepositoryItem = new DevExpress.XtraEditors.Repository.RepositoryItemRadioGroup();
}
}
第一种方法直接是不绘制这个Cell,第二种方法中可以根据需要把这个Cell换成其他任意一个RepositoryItem都可以