如果用户在 xtraGridView Devexpress Windows 表单中选择过滤器、排序或分组,如何隐藏特定列

How To Hide Certain column if User Choose filter,Sorting or Grouping in xtraGridView Devexpress Windows Form

如果用户在 xtraGridView Devexpress Windows Form

中选择 过滤器、排序或分组 如何隐藏特定列

我做过这样的事

 private void gridView1_GridMenuItemClick(object sender, GridMenuItemClickEventArgs e)
        {
            //WHEN TO DISPALY CLBAL COL AND WHEN NOT
            if (e.DXMenuItem.Caption.Equals("Group By This Column") || e.DXMenuItem.Caption.Equals("Sort Ascending") || e.DXMenuItem.Caption.Equals("Sort Descending")
                                            || e.DXMenuItem.Caption.Equals("Group By This Column") || e.DXMenuItem.Caption.Equals("Show Auto Filter Row"))
            {

                gridColumn16.Visible = false;
            }
            else if (e.DXMenuItem.Caption.Equals("Clear Grouping") || e.DXMenuItem.Caption.Equals("Clear All Sorting"))
            {
                gridColumn16.Visible = true;
            }

        }

我已经实现了分组和排序,但是如何知道用户何时从 header

列执行过滤

当过滤器应用于网格时,您可以使用 GridView 级别事件来自定义网格布局。例如 ColumnFilterChanged 事件

gridView1.ColumnFilterChanged += (s, e) => { gridView1.Columns[0].Visible = false; };

但是,此事件应在任何过滤器更改时触发,即来自代码、来自自动过滤器行过滤器行等。

没有通用的方法来找出 UI 元素导致过滤器更改的原因,但您可以使用基于 UI 的事件(例如显示过滤器弹出窗口或在自动编辑器中激活编辑器)过滤行)来完成这个任务。