Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

How to: Customize a Context Menu for Field Values

  • 3 minutes to read

This example shows how to modify context menu for the Field, Data and Header areas in the PivotGridControl.

  • Field Value context menu contains two new items. One command enables the end-user to exclude all fields but the one which is hovered over. Another command copies the filed name to the clipboard.
  • Data Area context menu contains a command which enables the end-user to copy cell content to the clipboard.
  • Field Header context menu context menu is modified to remove a command which reorders fields.
  • Header Area context menu is modified to remove all built-in commands and add a drop-down menu with a single item which enables the end-user to show/hide column grand totals.

Note

The complete sample project How to Customize the Pivot Grid Context Menu is available in the DevExpress Examples repository.

?<Window
    x:Class="WpfPivotGrid_CustomMenu.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:dxpg="http://schemas.devexpress.com/winfx/2008/xaml/pivotgrid"
    xmlns:local="clr-namespace:WpfPivotGrid_CustomMenu"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
    Width="800"
    Height="500"
    mc:Ignorable="d"
    Loaded="Window_Loaded"
    Title="MainWindow">

    <Grid>
        <dxb:BarManager Name="barManager">
            <dxb:BarManager.Items>
                <dxb:BarCheckItem Name="ShowColumnGrandTotals"
                              IsChecked="{Binding ElementName=pivotGrid, Path=ShowColumnGrandTotals, Mode=TwoWay}"
                              Content="Show Column Grand Totals" />
            </dxb:BarManager.Items>
            <dxpg:PivotGridControl Name="pivotGrid" RowTreeWidth="130">
                <dxpg:PivotGridControl.Fields>
                    <dxpg:PivotGridField Area="RowArea" FieldName="Name" />
                    <dxpg:PivotGridField Area="RowArea" FieldName="Owner" />
                    <dxpg:PivotGridField Area="ColumnArea" FieldName="Type" />
                    <dxpg:PivotGridField Area="DataArea" FieldName="Value" />
                    <dxpg:PivotGridField Area="DataArea" FieldName="Target" />
                </dxpg:PivotGridControl.Fields>
                <dxpg:PivotGridControl.FieldValueMenuCustomizations>
                    <dxb:BarButtonItem Name="CopyFieldElementData" Content="Copy Field Element Value" 
                                           ItemClick="CopyFieldElementData_ItemClick"/>
                    <dxb:BarButtonItem Name="FilterFieldElementData" Content="Filter By Field Element" 
                                           ItemClick="FilterFieldElementData_ItemClick"/>
                </dxpg:PivotGridControl.FieldValueMenuCustomizations>
                <dxpg:PivotGridControl.CellMenuCustomizations>
                    <dxb:BarButtonItem Name="CopyCellElementData" Content="Copy Cell Data" 
                                           ItemClick="CopyCellElementData_ItemClick"/>
                </dxpg:PivotGridControl.CellMenuCustomizations>
                <dxpg:PivotGridControl.HeaderMenuCustomizations>
                    <dxb:RemoveBarItemAndLinkAction 
                    ItemName="{x:Static dxpg:DefaultMenuItemNames.FieldOrder}" />
                </dxpg:PivotGridControl.HeaderMenuCustomizations>
                <dxpg:PivotGridControl.HeaderAreaMenuCustomizations >
                    <dxb:BarItemSeparator/>
                    <dxb:BarSubItem Content="Totals">
                        <dxb:BarSubItem.ItemLinks>
                            <dxb:BarCheckItemLink BarItemName="ShowColumnGrandTotals" />
                        </dxb:BarSubItem.ItemLinks>
                    </dxb:BarSubItem>
                    <dxb:RemoveBarItemAndLinkAction ItemName="ItemShowPrefilter" />
                    <dxb:RemoveBarItemAndLinkAction ItemName="ItemHidePrefilter" />
                    <dxb:RemoveBarItemAndLinkAction ItemName="ItemRefreshData" />
                    <dxb:RemoveBarItemAndLinkAction ItemName="ItemShowFieldList" />
                </dxpg:PivotGridControl.HeaderAreaMenuCustomizations>
            </dxpg:PivotGridControl>
        </dxb:BarManager>
    </Grid>

</Window>