2011-09-20 31 views
2

當用戶雙擊列標題時,我必須檢查/取消選中列中的所有複選框(切換)。DevExpress DXGrid列標題雙擊事件

如何在DevExpress DxGrid控件中實現此行爲?

我已經搜索了DevExpress支持論壇,但是我還沒有找到解決方案。

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

回答

1

這種情況適用於的WinForms,WPF中沒有測試過,我貼可能是引導您一些燈光:

有一種變通方法來做到這一點時,您必須實現yourGrid_DoubleClick事件處理程序,然後計算出鼠標點擊hit Info,命中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 
      } 
    } 

但你要注意,這個動作不會阻止排序的列的標題做,您可能需要禁用此網格的排序

希望這對我有所幫助。

+0

thanx的回覆。我是使用鼠標雙擊event.when我雙擊一行我檢查/取消選中所有選定的行的成功,但列cb檢查/ unckeing我必須實現列標題雙擊事件,但不知道如何alredy。 .. – Syeda

+0

使用相同的事件'grdiDoubleClick'並檢查'hitInfo.InColumn'屬性來指示用戶'雙擊'列標題或網格的另一部分,這應該爲你工作。 –