0

アプローチを試みDelegateCommandましたが、適切に実行されましたが、キージェスチャが機能しません:

public DelegateCommand StageCommand { get; private set; }

...
StageCommand = new DelegateCommand(StageExecuted);
...

private void StageExecuted(object action)
{
    System.Console.WriteLine("yay!");
}

そして私のコンテキスト メニューの XAML:

        <ContextMenu.InputBindings>
            <KeyBinding Command="{Binding PlacementTarget.Tag.StageCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
                        Gesture="Enter" />
        </ContextMenu.InputBindings>

        <MenuItem Header="Stage" Command="{Binding PlacementTarget.Tag.StageCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}">
        </MenuItem>

これはすべて適切に実行されますが、キージェスチャがありません。表示さえしません。

ここに画像の説明を入力

これは私がコンテキストメニューを使用する方法です:

<DataGrid 
          ContextMenu="{DynamicResource TestContextMenu}"
          Tag="{Binding}">

アップデート:

コンテキスト メニューが開いているときに押すと、実行されEnter ます。コンテキスト メニューがアタッチされているコントロールにフォーカスがある限り実行されるようにするにはどうすればよいですか? また、ジェスチャーキーはまだ表示されません。

4

2 に答える 2

2

CommandBinding一部のコントロールの にコマンド用の を作成しますInputBindings

于 2012-05-01T17:21:59.810 に答える
1

MSDNからMenuItem.InputGestureText: _

このプロパティは、入力ジェスチャをメニュー項目に関連付けません。メニュー項目にテキストを追加するだけです。アプリケーションは、アクションを実行するためにユーザーの入力を処理する必要があります。

MenuItem基本的に、これはデフォルトのコントロール テンプレートで入力ジェスチャをユーザーに表示するための純粋なテキスト フィールドであるため、 KeyBinding.

これは、バインディング、または 、または を検索し、一致するコマンドを使用する子に入力ジェスチャを割り当てるStaticResource添付プロパティ/動作を介して処理できます。KeyBinding

于 2012-05-01T17:39:07.567 に答える