2017-03-10 14 views
1

devexpress datagrid의 각 열 셀에 컨텍스트 메뉴를 만드는 방법은 무엇입니까?devexpress DataGrid의 각 열 셀에 컨텍스트 메뉴를 만드는 방법은 무엇입니까?

xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" 
    <dxg:GridControl Grid.Row="0" 
            Height="150"          
            ItemsSource="{Binding ObjectViewModel.Collection,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 
            SelectedItem="{Binding CurrentRow,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,TargetNullValue=null}" 
            > 
        <dxg:GridControl.Columns> 

         <dxg:GridColumn Header="Column1"}"             
              Width="*"            
              Binding="{Binding col1,Mode=OneWay}"> 
         </dxg:GridColumn> 
         <dxg:GridColumn Header="Column2"} 
              AllowEditing="False"           
              Width="*" 
              Binding="{Binding col2,Mode=OneWay}"> 
          <!--<dxg:GridColumn.CellStyle> 
           <Style TargetType="DataGridCell"> 
            <Setter Property="ContextMenu"> 
             <Setter.Value> 
              <ContextMenu> 
               <MenuItem Header="Col2!"></MenuItem> 
              </ContextMenu> 
             </Setter.Value> 
            </Setter> 
           </Style> 
          </dxg:GridColumn.CellStyle>--> 
         </dxg:GridColumn>      
       </dxg:GridControl> 

각 열에 ContextMenu를 만드는 방법은 무엇입니까?

예를 들어 컨텍스트 메뉴에서 첫 번째 열 (셀의 첫 번째 열에 속함)을 클릭하면 두 번째 열 (셀의 두 번째 열에 속함)을 클릭하면 "Column1 메뉴"항목이 표시되고 은 show "Column2 메뉴 "항목

+1

당신은 적응할 수 https://www.devexpress.com/Support/Center/Example/Details/E1837 – Cesario

답변

0

내가 찾은 답 :

<dxg:GridControl.View> 
         <!--region #RowCellMenuCustomization--> 
         <dxg:TableView x:Name="view" AutoWidth="True">        
          <dxg:TableView.RowCellMenuCustomizations> 

           <dxb:BarButtonItem Content="Menu1"           
             ItemClick="CellDataItem_Menu1_ItemClick" 
                Glyph="/MyCompany.UI.Resources;component/PNGImages/Menu1.png" 
                > 
           </dxb:BarButtonItem>                  
          </dxg:TableView.RowCellMenuCustomizations> 
         </dxg:TableView> 

그리고 핸들러 :

private void CellDataItem_ByColumn_ItemClick(object sender, ItemClickEventArgs e) 
    { 
     var menuInfo = view.GridMenu.MenuInfo as GridCellMenuInfo; 
     if (menuInfo != null && menuInfo.Row != null) 
     { 
      var column = menuInfo.Column as GridColumn;    
      if (column == null) return; 

      if ((String)column.ActualColumnChooserHeaderCaption == _nameColumn)//context menu under column "Name" 
      { 
       //code here 
      } 
      else if(...) 
      {} 

     } 
    }