Mega Code Archive

 
Categories / VB.Net / 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.vb Imports System Imports System.Collections.Generic Imports System.Text Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Data Imports System.Windows.Documents Imports System.Windows.Input Imports System.Windows.Media Imports System.Windows.Media.Imaging Imports System.Windows.Shapes Namespace WpfApplication1   Public Partial Class Window1     Inherits Window     Private unsavedChanges As Boolean = False     Public Sub New()       InitializeComponent()       Dim cmdBindingNew As New CommandBinding(ApplicationCommands.[New])       AddHandler cmdBindingNew.Executed, AddressOf NewCommandHandler       CommandBindings.Add(cmdBindingNew)     End Sub     Private Sub NewCommandHandler(sender As Object, e As ExecutedRoutedEventArgs)       If unsavedChanges Then         Dim result As MessageBoxResult = MessageBox.Show(Me, "Save changes to existing document?", "New", MessageBoxButton.YesNoCancel)         If result = MessageBoxResult.Cancel Then           Return         End If         If result = MessageBoxResult.Yes Then           SaveChanges()         End If       End If       inputBox.Clear()     End Sub     Private Sub OnTextboxTextChanged(sender As Object, e As RoutedEventArgs)       unsavedChanges = True       Console.WriteLine("changed")     End Sub     Private Sub SaveChanges()       unsavedChanges = False       Console.WriteLine("saved")     End Sub   End Class End Namespace