Custom Command by KeyGesture and RoutedUICommand

image_pdfimage_print


   
  
<Window x:Class="Commands.CustomCommand"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Commands" Height="300" Width="300" xmlns:local="clr-namespace:Commands">
  <Window.CommandBindings>
    <CommandBinding Command="local:DataCommands.MyCommand" Executed="MyCommand"/>
  </Window.CommandBindings>
  <Grid>
    <Button Margin="5" Command="local:DataCommands.MyCommand">Requery</Button>      
  </Grid>
</Window>
//File:Window.xaml.cs


using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace Commands
{
    public partial class CustomCommand : System.Windows.Window
    {
        public CustomCommand()
        {
            InitializeComponent();
        }
        private void MyCommand(object sender, ExecutedRoutedEventArgs e)
        {
            Console.WriteLine("Control R pressed");
        }
    }
    public class DataCommands
    {
        static RoutedUICommand my;
        static DataCommands()
        {
            InputGestureCollection inputs = new InputGestureCollection();
            inputs.Add(new KeyGesture(Key.R, ModifierKeys.Control, "Ctrl+R"));
            my = new RoutedUICommand("Requery", "Requery", typeof(DataCommands), inputs);
        }
        public static RoutedUICommand MyCommand
        {
            get { return my; }
        }
    }
}