C# проблема с привязкой данных к ContextMenu

Возникла проблема с привязкой ItemsSource к ContextMenu. На выходе получаем некорректную привязку.

<UserControl x:Class="IES.Client.DataForms.PlanFact_Forms.WPF.Controls.VisualizationUserControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:IES.Client.DataForms.PlanFact_Forms.WPF.Controls"
             xmlns:vm="clr-namespace:IES.Client.DataForms.PlanFact_Forms.WPF.ViewModels"
             mc:Ignorable="d"
             d:DesignHeight="450"
             d:DesignWidth="800">

    <UserControl.DataContext>
        <vm:ViewModel />
    </UserControl.DataContext>

    <UserControl.Resources>
        <ContextMenu x:Key="ContextMenu1"  ItemsSource="{Binding PlanFactList.PlanColumns}" />
    </UserControl.Resources>
    <Grid Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="50" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Button Content="Удалить" Command="{Binding DeleteColumn}" />

        <DataGrid Grid.Row="1" AutoGenerateColumns="False"
                  Name="dataGrid1"
                  ItemsSource="{Binding BindColumns}">

            <DataGrid.Resources>
                <Style TargetType="DataGridRow">
                    <Setter Property="Height"
                            Value="30" />
                </Style>

                <Style TargetType="DataGridColumnHeader">
                    <Setter Property="Height"
                            Value="30" />
                    <Setter Property="HorizontalContentAlignment"
                            Value="Center" />
                    <Setter Property="ContextMenu" Value="{StaticResource ContextMenu1}" />
                </Style>
                <Style TargetType="DataGridCell">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="DataGridCell">
                                <Grid>
                                    <ContentPresenter   HorizontalAlignment="Left"
                                                        VerticalAlignment="Center" />
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </DataGrid.Resources>
        </DataGrid>
    </Grid>
</UserControl>

Если сделать вот так:

  <DataGrid.ContextMenu>
      <ContextMenu ItemsSource="{Binding PlanFactList.PlanColumns}" />
  </DataGrid.ContextMenu>

то привязка работает, но мне нужен ContextMenu только у Header. В чем может быть проблема?


Ответы (0 шт):