WPF将按键传递给命令处理程序

时间:2013-05-06 08:54:49

标签: c# .net wpf routedcommand

我希望以下行为:

  • 按Ctrl + 1会导致从列表中选择第一项
  • Ctrl + 2选择前两个元素
  • 等等。

目前我正在处理RoutedEvent,Window.CommandBindings和InputGesture的按键。它工作正常,但我有十个几乎相同的命令(1,2,3 ... 9,0)。还有更好的方法吗?例如,将按下的键发送到CommandBinding.Executed

我的代码示例:

//XAML
<Window.CommandBindings>
        <CommandBinding Command="{x:Static local:CustomCommands.SelectOne}" Executed="cmdSelectOne_Executed"  />
//CustomCommands.cs
public static class CustomCommands
{
    public static RoutedCommand SelectOne = new RoutedCommand();
            //...

    static CustomCommands()
    {
        omg.InputGestures.Add(new KeyGesture(Key.D1, ModifierKeys.Control, "Ctrl + 1"));
            //...

    //MainWindow.xaml.cs
    private void cmdSelectOne_Executed(object sender, ExecutedRoutedEventArgs e)

0 个答案:

没有答案