I am designing a master/detail view. Currently, I have a user control (detail) in my main view, and both have thier own vm. On the one hand, I think there should only be one vm because the detail will never exist without the master. It would also be easier to handle the CRUD process in one vm because of their tight dependency on one another. On the other hand, they are separate entities, and having two smaller vm vs one large one seems more manageable. Any thoughts?
For the given scenario I would've created two different views and bound it to the same viewmodel.
If you lazy load stuff from a database, it might be cleaner to implement two viewmodels .
You might have a look at the BookLibrary sample application of the WPF Application Framework (WAF) which shows how to implement a master/detail view with two different ViewModels.
The view model is the model of the view. If you have two views, each has a view model. If the views are interdependent, the models will be too.
The wisdom of having a separate view model for detail items becomes apparent as the complexity of your detail items grows. For a simple example, imagine a hyperlink presenting a command in the detail view, which should be enabled if the detail item meets some kind of criteria. Where are you going to put the source of the hyperlink's command binding?