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

代わりにクリック イベントを使用できます。

<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なぜそれが静的になるのかわかりません。テキストブロックごとに作成され、ヘッダーごとに作成されるように見えます。ヘッダーが 1 つしかない場合は、事実上静的であると思います。

いずれにせよMyCommand、 class の静的コマンドにバインドするMyNamespace.MyClass場合は、次の構文を使用します。

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

次のように、親 XAML オブジェクトで xml 名前空間を指定する必要があることに注意してください。

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