When I\'m designing multiple views under the MVVM pattern, does each view get its own ViewModel or do they all share the same one? I understand that this is ultimately a flexib
To me thats a subjective statement- text book, I would say definately a 1-1 pairing - and there is certainly nothing wrong w/ being proactive and setting the paradigm by having a 1-1. However, if you have multiple views each representing a slice of the same data you dont necessarily have to have 1 per- you could reuse the same one across multiple views until you had a deviation. The purpose of the view model being a bridge between the ui and the business layer...if the business functions are the same you are either going to have a common view model interface or base and cast down or you are going to be replicating the same logic multiple times. If the view is the only thing that changes I see no issue in reusing the same view model until there is deviation.
In wpf, you should be binding to values on the model so unless your view model has a reference to your concrete view that shouldnt be an issue. Even it does, you could abstract out to a view contract (interface) and change the property to be that type instead.