No es que en realidad compleja (pero aún así, M $ chupa por no proporcionar él). Aquí van:
public static class MyCommands
{
private static readonly ICommand appCloseCmd = new ApplicationCloseCommand();
public static ICommand ApplicationCloseCommand
{
get { return appCloseCmd; }
}
}
//===================================================================================================
public class ApplicationCloseCommand : ICommand
{
public event EventHandler CanExecuteChanged
{
// You may not need a body here at all...
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
public bool CanExecute(object parameter)
{
return Application.Current != null && Application.Current.MainWindow != null;
}
public void Execute(object parameter)
{
Application.Current.MainWindow.Close();
}
}
Y el cuerpo del manipulador AplicationCloseCommand.CanExecuteChanged
evento no puede ser incluso necesario.
Se utiliza este modo:
<MenuItem Header="{DynamicResource MenuFileExit}" Command="MyNamespace:MyCommands.ApplicationCloseCommand"/>
Salud!
(No se puede imaginar el tiempo que me llevó a conocer este comando cosas a mí mismo ...)
Es probablemente Application.Current.Shutdown(); como Application.Current.Exit(); es un evento. – Vitalij
Así es, gracias. – Jeremy