using the MVVM pattern (and refactoring from MVP) and detailed steps for using DelegateCommands with AttachedBehaviors