我在datagridview中的列标题上有以下上下文菜单。
<DataGridCheckBoxColumn Binding="{Binding Include,UpdateSourceTrigger=PropertyChanged}" Width="50">
<DataGridCheckBoxColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="Export">
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem Header="Alle auswaehlen"/>
<MenuItem Header="Alle abwahelen"/>
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</DataTemplate>
</DataGridCheckBoxColumn.HeaderTemplate>
</DataGridCheckBoxColumn>
如您所见,上下文菜单是静态的。如何将Command
属性映射到我的代码中的静态方法?我在网上找到的所有例子都是用于灵活绑定或剪切/复制。
答案 0 :(得分:1)
您可以改为使用点击事件:
<MenuItem Header="Alle auswaehlen" Click="MenuItem_Click_1"/>
然后在您的代码中使用此方法:
private void MenuItem_Click_1(object sender, RoutedEventArgs e)
{
}
答案 1 :(得分:0)
我不明白为什么ContextMenu
会是静态的;它似乎是为每个文本块创建的,将为每个标题创建。如果你只有一个标题,那么我认为它是事实上的静态。
无论哪种方式,如果要绑定到类MyCommand
的静态命令MyNamespace.MyClass
,那么使用以下语法:
<MenuItem Header="header" Command="{x:Static mynamespace:MyClass.MyCommand}"/>
请注意,您需要在父XAML对象上指定xml命名空间,如下所示:
xmlns:mynamespace="clr-namespace:MyNamespace"