Mini Kabibi Habibi
<dxdemo:GridDemoModule x:Class="GridDemo.ContextMenu" x:Name="ContextMenuModule" mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800" xmlns:local="clr-namespace:GridDemo" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dxdemo="clr-namespace:GridDemo" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars" xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008">
<dxdemo:GridDemoModule.Resources>
<ResourceDictionary>
<dxdb:NWindDataLoader x:Key="NWindDataLoader" />
<dx:DefaultBooleanToNullableBooleanConverter x:Key="DefaultBooleanToNullableBooleanConverter" />
</ResourceDictionary>
</dxdemo:GridDemoModule.Resources>
<dxdb:DemoModuleControl>
<dxdb:DemoModuleControl.OptionsTopText>
Right-click a column header, grid row, group or summary panel and explore available menu items.
</dxdb:DemoModuleControl.OptionsTopText>
<dxdb:DemoModuleControl.OptionsContent>
<StackPanel>
<dx:GroupFrame Header="Column Menu" Margin="0,0,0,12">
<StackPanel Orientation="Vertical">
<dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.IsColumnMenuEnabled, Mode=TwoWay}" Content="Enabled" />
<dxe:CheckEdit Name="columnMenuRemoveItemCheck" Margin="0,0,0,4" Content="Remove 'Group Box' item" />
<dxe:CheckEdit Name="columnMenuAddItemCheck" Margin="0,0,0,0" Content="Add 'Allow Sorting/Grouping' items" />
</StackPanel>
</dx:GroupFrame>
<dx:GroupFrame Header="GroupPanel Menu" Margin="0,0,0,12">
<StackPanel Orientation="Vertical">
<dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.IsGroupPanelMenuEnabled, Mode=TwoWay}" Content="Enabled" />
<dxe:CheckEdit Name="groupPanelMenuRemoveItemCheck" Margin="0,0,0,4" Content="Remove 'Clear Grouping' item" />
<dxe:CheckEdit Name="groupPanelMenuAddItemCheck" Margin="0,0,0,0" Content="Add 'Allow Sorting/Grouping' items" />
</StackPanel>
</dx:GroupFrame>
<dx:GroupFrame Header="Cell Menu" Margin="0,0,0,12">
<StackPanel Orientation="Vertical">
<dxe:CheckEdit Margin="0,0,0,0" IsChecked="{Binding Path=View.IsRowCellMenuEnabled, Mode=TwoWay}" Content="Enabled" />
</StackPanel>
</dx:GroupFrame>
<dx:GroupFrame Header="Footer Menu" Margin="0,0,0,12">
<StackPanel Orientation="Vertical">
<dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.IsTotalSummaryMenuEnabled, Mode=TwoWay}" Content="Enabled" />
<dxe:CheckEdit Name="totalMenuRemoveItemCheck" Margin="0,0,0,0" Content="Remove 'Customize' item" />
</StackPanel>
</dx:GroupFrame>
</StackPanel>
</dxdb:DemoModuleControl.OptionsContent>
<dxb:BarManager Name="barManager">
<dxb:BarManager.Items>
<dxb:BarButtonItem Name="deleteRowItem" Content="Delete" Command="{Binding ElementName=ContextMenuModule, Path=DeleteRow}" CommandParameter="{Binding ElementName=ContextMenuModule, Path=CellMenuInfo.Row.RowHandle.Value}" />
</dxb:BarManager.Items>
<dxg:GridControl Grid.Row="1" Name="grid" Grid.Column="0" ItemsSource="{Binding Path=InvoicesNew, Source={StaticResource NWindDataLoader}}" CustomSummary="grid_CustomSummary" CustomSummaryExists="grid_CustomSummaryExists">
<dxg:GridControl.Columns>
<dxg:GridColumn Name="colCountry" FieldName="Country" MinWidth="30" Width="30" />
<dxg:GridColumn FieldName="City" MinWidth="30" Width="30" />
<dxg:GridColumn Name="colUnitPrice" FieldName="UnitPrice" MinWidth="150" Width="150">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="Discount" MinWidth="150" Width="150">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings DisplayFormat="0%" MaskType="Numeric" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.TotalSummary>
<dxg:GridSummaryItem FieldName="UnitPrice" SummaryType="Count" ShowInColumn="UnitPrice" />
<dxg:GridSummaryItem FieldName="Discount" SummaryType="Max" ShowInColumn="Discount" />
<dxg:GridSummaryItem FieldName="UnitPrice" SummaryType="Custom" ShowInColumn="UnitPrice" DisplayFormat="Median={0:0}" Tag="customItem" />
</dxg:GridControl.TotalSummary>
<dxg:GridControl.GroupSummary>
<dxg:GridSummaryItem FieldName="UnitPrice" SummaryType="Sum" DisplayFormat="Sum of Unit Price is ${0:N}" />
</dxg:GridControl.GroupSummary>
<dxg:GridControl.View>
<dxg:TableView Name="view" ShowGroupedColumns="True" NavigationStyle="Row" ShowTotalSummary="True" AutoWidth="True" ShowGridMenu="TableView_ShowGridMenu">
<dxg:TableView.ColumnMenuCustomizations>
<dxb:BarItemLinkSeparator />
<dxb:BarCheckItem Name="allowSortingItem" Content="Allow Sorting" IsChecked="{Binding Path=(dxg:GridPopupMenu.GridMenuInfo).Column.AllowSorting, Mode=TwoWay, Converter={StaticResource DefaultBooleanToNullableBooleanConverter}, RelativeSource={RelativeSource Self}}" IsThreeState="true" />
<dxb:BarCheckItem Name="allowGroupingItem" Content="Allow Grouping" IsChecked="{Binding Path=(dxg:GridPopupMenu.GridMenuInfo).Column.AllowGrouping, Mode=TwoWay, Converter={StaticResource DefaultBooleanToNullableBooleanConverter}, RelativeSource={RelativeSource Self}}" IsThreeState="true" />
</dxg:TableView.ColumnMenuCustomizations>
<dxg:TableView.GroupPanelMenuCustomizations>
<dxb:BarItemLinkSeparator />
<dxb:BarCheckItem Name="allowAllSortingItem" Content="Allow Sorting" IsChecked="{Binding Path=(dxg:GridPopupMenu.GridMenuInfo).View.AllowSorting, Mode=TwoWay, RelativeSource={RelativeSource Self}}" />
<dxb:BarCheckItem Name="allowAllGroupingItem" Content="Allow Grouping" IsChecked="{Binding Path=(dxg:GridPopupMenu.GridMenuInfo).View.AllowGrouping, Mode=TwoWay, RelativeSource={RelativeSource Self}}" />
</dxg:TableView.GroupPanelMenuCustomizations>
<dxg:TableView.RowCellMenuCustomizations>
<dxb:BarButtonItemLink BarItemName="deleteRowItem" />
</dxg:TableView.RowCellMenuCustomizations>
<dxg:TableView.TotalSummaryMenuCustomizations>
<dxb:BarCheckItem Name="customSummaryMenuItem" dxb:BarItemLinkActionBase.ItemLinkIndex="5" Content="Median" IsChecked="true" CloseSubMenuOnClick="False" CheckedChanged="customSummaryMenuItem_CheckedChanged" />
</dxg:TableView.TotalSummaryMenuCustomizations>
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>
</dxb:BarManager>
</dxdb:DemoModuleControl>
</dxdemo:GridDemoModule>