Now we will implement project billing using the MVVM pattern. Let's start by discussing the overall design.
The model, view, and view model are shown in the following screenshot, along with their relationships:
The view is now empty, and all of the explicit relationships that we've created between our classes are between the model and view model.
Using multiple nested view models in this way is what I call hierarchical view models, and it is a topic that will be explored in more detail in Chapter 6, Northwind — Hierarchical View Model and IoC.