Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为devexpress数据网格中的每个列单元格创建上下文菜单?_C#_Wpf_Datagrid_Contextmenu_Devexpress Wpf - Fatal编程技术网

C# 如何为devexpress数据网格中的每个列单元格创建上下文菜单?

C# 如何为devexpress数据网格中的每个列单元格创建上下文菜单?,c#,wpf,datagrid,contextmenu,devexpress-wpf,C#,Wpf,Datagrid,Contextmenu,Devexpress Wpf,如何为devexpress数据网格中的每个列单元格创建上下文菜单 xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" <dxg:GridControl Grid.Row="0" Height="150"

如何为devexpress数据网格中的每个列单元格创建上下文菜单

   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>
xmlns:dxg=”http://schemas.devexpress.com/winfx/2008/xaml/grid"
我找到了答案:

 <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(...)
            {}

        }
    }