WPF/MVVM - keep ViewModels in application component or separate?
Posted
by
Anders Juul
on Stack Overflow
See other posts from Stack Overflow
or by Anders Juul
Published on 2011-01-15T08:39:56Z
Indexed on
2011/01/15
8:53 UTC
Read the original article
Hit count: 285
Hi all,
I have a WPF application where I'm using the MVVM pattern.
I get the VM activated for actions that require user input and thus need to activate views from the VM.
I've started out separating the VMs into a separate component/assembly, partly because I see them as the unit testable part, partly because views should rely on VM, not the other way round. But when I then need to bring up a window, the window is not known by the VM.
All introductions I find place the VM in the WPF/App component, thus eliminating the problem.
This article recommends keeping them in separate layers : http://waf.codeplex.com/wikipage?title=Architecture%20-%20Get%20The%20Big%20Picture&referringTitle=Home
As I see it, I have the following choices
Move VMs to the WPF/App assembly to allow VMs to access the windows directly.
Place interfaces of views in VM-assembly, implement views in WPF/App assembly and register the connection through IOC or alternative ways.
File a 'request' from the VM into some mechanism/bus that routes the request (but which mechanism!? E.g something in Prism?!)
What's the recommendation?
Thanks for any comments,
Anders, Denmark
© Stack Overflow or respective owner