Devexpress 禁用特定列的条件格式设置

Devexpress 禁用特定列的条件格式设置,devexpress,conditional-formatting,xtragrid,Devexpress,Conditional Formatting,Xtragrid,从启用属性开始,该功能变为可用 通过右键单击任何列标题,将显示“条件格式”菜单项,允许最终用户将条件格式应用于网格列 我的问题是,是否可以禁用特定列的功能?我想让菜单项变灰,或者干脆不让它(以某种方式隐藏)在项目列表中 我知道,一个特定列的单元格可以通过将格式应用于整行来设置其他列上的条件格式。但是,我的目标只是确保用户无法访问特定列的功能。您可以使用事件删除相应的菜单项: using System.Windows.Forms; using DevExpress.XtraGrid.Locali

从启用属性开始,该功能变为可用

通过右键单击任何列标题,将显示“条件格式”菜单项,允许最终用户将条件格式应用于网格列

我的问题是,是否可以禁用特定列的功能?我想让菜单项变灰,或者干脆不让它(以某种方式隐藏)在项目列表中


我知道,一个特定列的单元格可以通过将格式应用于整行来设置其他列上的条件格式。但是,我的目标只是确保用户无法访问特定列的功能。

您可以使用事件删除相应的菜单项:

using System.Windows.Forms;
using DevExpress.XtraGrid.Localization;
using DevExpress.XtraGrid.Menu;
using DevExpress.XtraGrid.Views.Grid;

namespace WindowsFormsApplication2 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            gridView1.PopupMenuShowing += gridView1_PopupMenuShowing;
        }
        void gridView1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e) {
            var columnMenu = e.Menu as GridViewColumnMenu;
            if(columnMenu != null && columnMenu.Column == this.gridColumn1) {
                var conditionalFormattingItem = e.Menu.Items.FirstOrDefault(x => object.Equals(x.Tag, GridStringId.MenuColumnConditionalFormatting));
                if(conditionalFormattingItem != null)
                    conditionalFormattingItem.Visible = false;
            }
        }
    }
}