DevExpress DXGrid列标题双击事件

本文关键字:双击 事件 标题 DXGrid DevExpress | 更新日期: 2023-09-27 18:09:00

当用户双击列标题时,我必须选中/取消选中列中的所有复选框(切换)。

如何在DevExpress DxGrid控件中实现此行为?

我已经搜索了DevExpress支持论坛,但我还没有找到解决方案。

另外,我正在研究MVVM模式。

DevExpress DXGrid列标题双击事件

这个案例适用于WinForms,尚未在WPF中测试,我发布了它可能会指导你一些灯:

有一个解决方法来完成这个行为,你必须实现yourGrid_DoubleClick事件处理程序,然后计算鼠标点击的hit Info, hit info对象将告诉你双击是否在列上,类似于:

 private void yourGridViewName_DoubleClick(object sender, EventArgs e)
        {
            DevExpress.XtraGrid.Views.Grid.GridView sndr =
                    sender as DevExpress.XtraGrid.Views.Grid.GridView;
            DevExpress.Utils.DXMouseEventArgs dxMouseEventArgs =
                e as DevExpress.Utils.DXMouseEventArgs;

            DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hitInfo =
               sndr.CalcHitInfo(dxMouseEventArgs.Location);
            if (hitInfo.InColumn)
            {
               string x = hitInfo.Column.Name;
              //Rest of your logic goes here after getting the column name, 
             //You might now loop over your grid's data and do your logic
           }
    }

但是你必须注意这个动作不会阻止列的标题排序,你可能需要禁用这个网格的排序

希望有帮助。