Mega Code Archive

 
Categories / C# / WPF
 

Binding Command to ApplicationCommands New

<Window x:Class="WpfApplication1.Window1"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     Title="CommandHandling" Height="300" Width="300"     >     <DockPanel>       <Menu DockPanel.Dock="Top">         <MenuItem Header="_File">           <MenuItem Command="New" />         </MenuItem>       </Menu>       <TextBox x:Name="inputBox" TextChanged="OnTextboxTextChanged" />     </DockPanel> </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 WpfApplication1 {     public partial class Window1 : Window     {         bool unsavedChanges = false;                  public Window1()         {             InitializeComponent();             CommandBinding cmdBindingNew = new CommandBinding(ApplicationCommands.New);             cmdBindingNew.Executed += NewCommandHandler;             CommandBindings.Add(cmdBindingNew);         }         void NewCommandHandler(object sender, ExecutedRoutedEventArgs e)         {             if (unsavedChanges)             {                 MessageBoxResult result = MessageBox.Show(this,"Save changes to existing document?", "New",MessageBoxButton.YesNoCancel);                 if (result == MessageBoxResult.Cancel){                     return;                 }                 if (result == MessageBoxResult.Yes){                     SaveChanges();                 }             }             inputBox.Clear();         }         private void OnTextboxTextChanged(object sender, RoutedEventArgs e){             unsavedChanges = true;             Console.WriteLine("changed");         }         private void SaveChanges(){             unsavedChanges = false;             Console.WriteLine("saved");         }     } }