Mega Code Archive

 
Categories / C# / WPF
 

Use CommandBinding to bind ApplicationCommands New in code

<Window x:Class="Commands.TestNewCommand"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     Title="TestNewCommand" Height="150" Width="300">   <Window.CommandBindings>     <CommandBinding Command="ApplicationCommands.New"       Executed="NewCommand" />   </Window.CommandBindings>   <StackPanel >     <Menu>       <MenuItem Header="File">         <MenuItem Command="New"></MenuItem>       </MenuItem>     </Menu>     <Button Margin="5" Padding="5" Command="ApplicationCommands.New" ToolTip="{x:Static ApplicationCommands.New}">New</Button>     <Button Margin="5" Padding="5" Visibility="Hidden" Command="ApplicationCommands.Open">Open (unwired)</Button>       <Button Margin="5" Padding="5" Visibility="Hidden" Click="cmdDoCommand_Click" >DoCommand</Button>     </StackPanel> </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 TestNewCommand : System.Windows.Window     {         public TestNewCommand()         {             InitializeComponent();             CommandBinding bindingNew = new CommandBinding(ApplicationCommands.New);             bindingNew.Executed += NewCommand;             this.CommandBindings.Add(bindingNew);         }         private void NewCommand(object sender, ExecutedRoutedEventArgs e)         {                         MessageBox.Show("New command triggered by " + e.Source.ToString());         }         private void cmdDoCommand_Click(object sender, RoutedEventArgs e)         {             Console.WriteLine("command");         }     } }