Implementing a basic MVVM application
The MVC, MVP, and MVVM patterns comprise mostly the same parts: a model, which is the data, a view (or views) that display the data in some meaningful way and provide user interaction, and a third part that is somehow responsible for the logic behind the interactions of view and data. The exact differences between MVC and MVP are not that important (you can find a lot on these topics on the Web). MVVM could be considered a special case of MVP, where data binding is used to connect the View with the ViewModel in a very loose way. This is especially favorable for XAML-based applications, where data binding is both declarative and powerful. In this recipe, we'll move closer to MVVM by taking the previous recipe, Using routed commands, and "moving" it towards MVVM.
Getting ready
In Visual Studio, open the CH07.RoutedCommands
project (from the previous recipe). We'll make changes to this project to make it more MVVM-like.
How to do it...
We'll refactor the image...