There can be only one viewmodel for the view at the top level, acting as the datacontext. You can switch between viewmodels. If nothing is specified on the top level, and the window is divided into sections (or user-controls), then each section can have its viewmodel.