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