Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF DataGrid中的非活动上下文菜单_C#_Wpf_Datagrid_Contextmenu_Routedcommand - Fatal编程技术网

C# WPF DataGrid中的非活动上下文菜单

C# WPF DataGrid中的非活动上下文菜单,c#,wpf,datagrid,contextmenu,routedcommand,C#,Wpf,Datagrid,Contextmenu,Routedcommand,我有一个从datagrid继承的usercontorol VariableGrid <vg:VariableGrid ItemsSource="{Binding Items, Mode=TwoWay}"> <DataGrid.Columns> <DataGridTextColumn Binding="{Binding Name}" Header="Name"/>

我有一个从datagrid继承的usercontorol VariableGrid

    <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>
当DataGrid为空时,右键单击在上下文菜单中显示禁用的命令。因此,我无法在我的上下文菜单中执行任何操作


你能帮我解决我的问题吗?

看这个谢谢,这帮了我。
<Style TargetType="{x:Type vg:VariableGrid}">
    <Setter Property="CanUserAddRows" Value="false" />
    <Setter Property="CanUserDeleteRows" Value="false" />
    <Setter Property="ContextMenu" Value="{StaticResource VariableGridContextMenu}" />
</Style>
<ContextMenu x:Key="VariableGridContextMenu">
    <MenuItem Header="Add variable" Command="{x:Static vg:VariableGrid.AddRowCommand}"/>
    <MenuItem Header="Delete" Command="{x:Static ApplicationCommands.Delete}"/>
</ContextMenu>
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);
    }
}