Неактивное ContextMenu в WPF DataGrid

У меня есть usercontorol VariableGrid, унаследованный от datagrid

    <vg:VariableGrid ItemsSource="{Binding Items, Mode=TwoWay}">
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Name}" Header="Name"/>               
            <DataGridTextColumn Binding="{Binding Value}" Header="Value"/>
        </DataGrid.Columns>
    </vg:VariableGrid>

со свойствами CanUserAddRows=false, CanUserDeleteRows=false

<Style TargetType="{x:Type vg:VariableGrid}">
    <Setter Property="CanUserAddRows" Value="false" />
    <Setter Property="CanUserDeleteRows" Value="false" />
    <Setter Property="ContextMenu" Value="{StaticResource VariableGridContextMenu}" />
</Style>

Когда пользователь щелкает правой кнопкой мыши на DataGrid, мне нужно показать контекстное меню с RoutedCommands

<ContextMenu x:Key="VariableGridContextMenu">
    <MenuItem Header="Add variable" Command="{x:Static vg:VariableGrid.AddRowCommand}"/>
    <MenuItem Header="Delete" Command="{x:Static ApplicationCommands.Delete}"/>
</ContextMenu>

Эти команды реализованы в моем usercontrol

public partial class VariableGrid : DataGrid, INotifyPropertyChanged 
{
    public static RoutedCommand AddRowCommand = new RoutedCommand();
    private void InitCommands()
    {
        this.CommandBindings.Add(new CommandBinding(VariableGrid.AddRowCommand, AddRow)); 
        this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Delete, RemoveRow, CanRemoveRow)); 
    }

    private void AddRow(object sender, ExecutedRoutedEventArgs e)
    {
    …
    }
    private void RemoveRow(object sender, ExecutedRoutedEventArgs e)
    {
        …
    }

    private void CanRemoveRow(object sender, CanExecuteRoutedEventArgs e)
    {
        e.CanExecute = (SelectedItems.Count > 0);
    }
}

Когда DataGrid пуст, щелчок правой кнопкой мыши показывает отключенные команды в contextMenu. Поэтому я не могу выполнить никаких действий в моем Contextmenu.

Можете ли вы помочь мне с моей проблемой?

0 ответов

Другие вопросы по тегам