Доброго времени суток, запнулся на следующей проблеме. Есть xaml который работает как надо, а именно по клику на заголовок колонки выводит показывает меню со всеми колонками
<UserControl.Resources>
<ContextMenu x:Key="ColumnMenu"
ItemsSource="{Binding Columns}"
DataContext="{Binding DataContext,
RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="IsChecked" Value="{Binding Visibility,Converter={StaticResource Vt}}"></Setter>
<Setter Property="Command" Value="{Binding DataContext.ChangeVisibleColumnCommand,
RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" ></Setter>
<Setter Property="CommandParameter" Value="{Binding}"></Setter>
</Style>
</ContextMenu.ItemContainerStyle>
<ContextMenu.ItemTemplate>
<DataTemplate DataType="MenuItem">
<MenuItem Header="{Binding Header}"></MenuItem>
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
</UserControl.Resources>
<DataGrid Context={StaticResouce ContextMenuRow}>
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="ContextMenu" Value="{StaticResource ColumnMenu}"/>
</Style>
</DataGrid.Resources>
</DataGrid>
перел этот код C#
var columMenu = new ContextMenu();
columMenu.SetBinding(System.Windows.Controls.ContextMenu.ItemsSourceProperty, new Binding("Columns"));
var menu = new ContextMenu();
menu.SetBinding(System.Windows.Controls.ContextMenu.ItemsSourceProperty, new Binding("ContextMenuItems"));
var stl = new System.Windows.Style();
stl.Setters.Add(new Setter(DataGridColumnHeader.ContextMenuProperty, columMenu));
dg.Style = stl;
dg.ContextMenu = menu;
Реагирует только menu, но если убрать dg.ContextMenu = menu; то над всем DataGrid появляется columMenu
Как быть?