C# WPF DataGrid中的非活动上下文菜单
我有一个从datagrid继承的usercontorol VariableGridC# 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"/>
<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);
}
}