In MVVM we have Views, ViewModels and Models. All the business logic of my application is in models, where I use viewModels to manage them, as well as binds and commands that are sent from Views.
But now I have a problem, I need to open a new window in the system, and whose responsibility would it be?
We know that in the MVVM's "perfect world", ViewModel should not communicate with View, but how can I open a window without ViewModel being unaware of View?
I'm about to break this "rule" and open a new window the same way I do in Windows Forms, however this would impact on automated testing and would go against the MVVM principle, so what's the solution? Is it okay to break this rule?