如果用户在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;
}
}
我已经实现了分组和排序,但是如何知道用户何时从列标题中执行过滤
答案 0 :(得分:0)
当过滤器应用于网格时,您可以使用GridView级别事件来自定义网格布局。例如ColumnFilterChanged事件
gridView1.ColumnFilterChanged += (s, e) => { gridView1.Columns[0].Visible = false; };
但是,此事件应触发任何过滤器更改,即来自代码,来自自动过滤器行过滤器行等。
没有通用的方法可以找出导致过滤器更改的UI元素,但您可以使用基于UI的事件(如显示过滤器弹出窗口或激活自动过滤器行中的编辑器)来完成此任务。