1

我在 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属性映射到代码中的静态方法?我在网上找到的所有示例都是用于灵活装订或剪切/复制的。

4

2 回答 2

1

您可以改用 click 事件:

<MenuItem Header="Alle auswaehlen" Click="MenuItem_Click_1"/>

然后在您的代码中使用此方法:

private void MenuItem_Click_1(object sender, RoutedEventArgs e)
{

}
于 2013-05-14T17:09:55.640 回答
0

我不明白为什么那ContextMenu会是静态的。它似乎是为每个文本块创建的,它将为每个标题创建。如果你只有一个标题,那么我想它实际上是静态的。

无论哪种方式,如果要绑定到MyCommandclass的静态命令MyNamespace.MyClass,则使用以下语法:

<MenuItem Header="header" Command="{x:Static mynamespace:MyClass.MyCommand}"/>

请注意,您需要在父 XAML 对象上指定 xml 命名空间,如下所示:

xmlns:mynamespace="clr-namespace:MyNamespace"
于 2013-05-14T17:07:38.383 回答