Unfortunately this will not work.
ApplicationCommands.Close is a RoutedUiEvent that requires a CommandTarget (any IInputelement). It uses this target command to enhance routing.
You can then handle this routedevent with the command.
From the ViewModel, you can bind ApplicationCommands.Close to the Close button, and then handle the routed close event in your window.
However, you cannot call ApplicationCommands.Close.Execute(null,null) in your ViewModel after executing another command, since you do not have a CommandTarget (second zero)
There are other threads like this. How should the ViewModel close the form? which details various methods for this.
http://adammills.wordpress.com/2011/02/16/mvvm-uses-for-applicationcommands-close/
source share