如果用户在xtraGridView Devexpress Windows窗体中选择过滤器,排序或分组,如何隐藏某些列

时间:2015-08-21 05:52:46

标签: c# winforms devexpress windows-forms-designer devexpress-windows-ui

如果用户在xtraGridView Devexpress Windows窗体中选择过滤,排序或分组,如何隐藏某些列

我做过类似的事情

 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;
            }

        }

我已经实现了分组和排序,但是如何知道用户何时从列标题中执行过滤

1 个答案:

答案 0 :(得分:0)

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

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

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

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