Как открыть ContextMenu с помощью сочетания клавиш - PullRequest
0 голосов
/ 30 ноября 2011

Я создаю WPF DataGrid с ContextMenu в одном из заголовков столбцов следующим образом:

<DataGrid x:Name="grid" ItemsSource="{Binding Path=Orders}">
    <DataGrid.InputBindings>
            <KeyBinding Command="{Binding Path=ShowStatusHeaderContextMenuCommand}"
                        CommandParameter="{Binding ElementName=FristNameContextMenu}"
                        Gesture="Ctrl+S" />
    </DataGrid.InputBindings>
    <DataGrid.Columns>
        <DataGridTemplateColumn Width="30" Header="Status">
            <DataGridTemplateColumn.HeaderTemplate>
               <DataTemplate>
                  <TextBlock x:Name="StatusHeaderTextBlock" Text="Status">
                      <TextBlock.ContextMenu>
                            <ContextMenu x:Name="FristNameContextMenu">
                                <MenuItem Command="{Binding SetCompleteFlagsCommand}" Header="Complete"/>
                                <MenuItem Command="{Binding ClearDeleteFlagsCommand}" Header="Deleted" />
                            </ContextMenu>
                      </TextBlock.ContextMenu>
                  </TextBlock>
               </DataTemplate>
            </DataGridTemplateColumn.HeaderTemplate>
        </DataGridTemplateColumn>

         <DataGridTextColumn Width="100"
                             Header="Order Number"
                             Binding = "{Binding Path=OrderNumber}"/>
    <DataGrid.Columns>
</DataGrid>

Если я щелкну правой кнопкой мыши заголовок столбца Status, он вызовет ContextMenu. Но я хочу добавить комбинацию клавиш «Control + S», чтобы вызвать ContextMenu. Кто-нибудь знает, как его добавить?

Спасибо

Jing

1 Ответ

1 голос
/ 30 ноября 2011

Создайте команду , которая открывает контекстное меню, и добавьте KeyBinding с этой командой и вашим жестом к InputBindings элемента управления вк области действия которой должен применяться ярлык.

(Также: Ctrl+S по соглашению означает «Сохранить», я не уверен, действительно ли вы хотите использовать это для контекстного меню)

...