次の動作が必要です。
- Ctrl + 1 を押すと、リストから最初の項目が選択されます
- Ctrl + 2 は最初の 2 つの要素を選択します
- 等々。
現在、押されたキーは RoutedEvent、Window.CommandBindings、および InputGesture で処理しています。正常に動作しますが、ほぼ同じコマンドが 10 個あります (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)