Devexpress的gridControl中将某一个repositoryItem的Cell设为不可见

来源:互联网 发布:js ajax 跨域 编辑:程序博客网 时间:2024/06/06 20:35

我遇到一个情况是,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;                }        }


2)可以重载gridView的CustomRowCellEdit事件

        private void gridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)        {            if (ConditionIsMet())            {               e.RepositoryItem = new DevExpress.XtraEditors.Repository.RepositoryItemRadioGroup();             }        }


第一种方法直接是不绘制这个Cell,第二种方法中可以根据需要把这个Cell换成其他任意一个RepositoryItem都可以





0 0
原创粉丝点击