MVVM Model-View ViewModel is
similar to MVC, Model-View Controller. The controller is replaced with a
View Model. The View Model sits below the UI layer. The View Model exposes the
data and command objects that the view needs. You could think of this as a
container object that view goes to to get its data and actions from. The View
Model pulls its data from the model.