WPF: Context-menu for Row and Header of DataGrid
-
I've a dataGrid in my XAML file. I need to display two separate context-menus on right-click on Rows and Header. Having same context-menu on both is easy, but how to have different ones? Will someone please provide a bit of code?
-
I've a dataGrid in my XAML file. I need to display two separate context-menus on right-click on Rows and Header. Having same context-menu on both is easy, but how to have different ones? Will someone please provide a bit of code?
I think, I've got the answer.
<!--ContextMenu Definition-->
<ContextMenu x:Key="cm_rowMenu">
<!--ContextMenu For Row-->
</ContextMenu><ContextMenu x:Key="cm\_columnHeaderMenu"> <!--ContextMenu For Header--> </ContextMenu>
<!--ContextMenu Definition Ends-->
<!--Default Header Style-->
<Style x:Key="DefaultColumnHeaderStyle" TargetType="{x:Type Custom:DataGridColumnHeader}">
<Setter Property="ContextMenu" Value="{StaticResource cm_columnHeaderMenu}" />
</Style><!--Default Row Style-->
<Style x:Key="DefaultRowStyle" TargetType="{x:Type Custom:DataGridRow}">
<Setter Property="ContextMenu" Value="{StaticResource cm_rowMenu}" />
</Style><!--Setting styles for DataGrid-->
<Custom:DataGrid
RowStyle="{StaticResource DefaultRowStyle}"
ColumnHeaderStyle="{StaticResource DefaultColumnHeaderStyle}"/> -
I think, I've got the answer.
<!--ContextMenu Definition-->
<ContextMenu x:Key="cm_rowMenu">
<!--ContextMenu For Row-->
</ContextMenu><ContextMenu x:Key="cm\_columnHeaderMenu"> <!--ContextMenu For Header--> </ContextMenu>
<!--ContextMenu Definition Ends-->
<!--Default Header Style-->
<Style x:Key="DefaultColumnHeaderStyle" TargetType="{x:Type Custom:DataGridColumnHeader}">
<Setter Property="ContextMenu" Value="{StaticResource cm_columnHeaderMenu}" />
</Style><!--Default Row Style-->
<Style x:Key="DefaultRowStyle" TargetType="{x:Type Custom:DataGridRow}">
<Setter Property="ContextMenu" Value="{StaticResource cm_rowMenu}" />
</Style><!--Setting styles for DataGrid-->
<Custom:DataGrid
RowStyle="{StaticResource DefaultRowStyle}"
ColumnHeaderStyle="{StaticResource DefaultColumnHeaderStyle}"/>Yup - that looks like it should do it.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.