<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; } } } }