devexpress如何隐藏PropertyGridControl中的编辑器(Editor)

引言

PropertyGridControl有两种视图模式(ActiveViewType),经典和office

如果使用office视图(经典视图为Grid展示方式,因此无法隐藏,只能自定义ExpandableObjectConverter,具体可参考CourseConverter)绑定一个前文:devexpress如何在PropertyGridControl中直接编辑集合成员中的对象结果就是这样:

office view

现在,ListCourses这个对象已经被展开了,所以它的集合编辑器没那么必要,如果我想要把这个Editor去掉,有什么办法吗?

解决方案

官方并没有针对这个问题提供简单的解决方案,但是它有CustomDrawRowValueCell事件

这个事件可以自定义Editor

所以,问题就比较简单了;只需要不绘制Cell即可达到隐藏控件的目的

1
2
3
4
5
6
7
8
private void PropertyGridControl1_CustomDrawRowValueCell(object sender, DevExpress.XtraVerticalGrid.Events.CustomDrawRowValueCellEventArgs e)
{
if(e.Row.Properties.FieldName== nameof(Student.ListCourses))
{
e.Properties.AllowEdit = false;//解决点击编辑框位置时Editor出现的问题
e.Handled = true;//不执行绘制操作即可隐藏编辑器
}
}

效果如图:

hide collection editor

参考资料


devexpress如何隐藏PropertyGridControl中的编辑器(Editor)
http://blog.wangshuai.app/2021-09-29-devexpress如何隐藏PropertyGridControl中的编辑器(Editor)/
作者
王帅
发布于
2021年9月29日
许可协议