I have a window with a list, where clicking a list entry will show a new window for a detail view of that item
What is the cleanest way to do this in MVVM? I thought of just doing a container.Resolve<IViewType>().Show() and have Unity create all the dependencies, but just calling Show() sounds un-MVVM. Should I create some sort of WindowService manager class or would this be overkill? What layer of code is it acceptable for code to call Show()?
Secondly, how would I pass parameters (eg CustomerID and ProductID) from the initiating view-model to the new view-model that will be attached to the new window being shown?
I generally prefer to create a NavigationService that handles instantiating windows and view models and sets the view model as the data context. Then you can call this from within your parent viewmodel and they are decoupled.