情境:
- 该应用程序加载ViewA及其相关的ViewModelA
-ViewA有一个按钮,命令绑定到ViewModelA上的命令
-ViewModelA处理命令,应创建并显示ViewB的实例
问题是,谁应该负责创建ViewB的实例?
ViewModel不应该对Views有任何了解,这似乎是合理的,所以我看到了几种可行的可能性:
1)ViewModelA可以设置ViewA监视的属性,以便ViewA知道创建ViewB的实例。但这似乎会给ViewA带来太多责任
2)您可以将某种ViewManager服务注入ViewModelA,当它处理来自ViewA的命令时,它可以使用命令参数将某种适当的元数据传递到ViewManager的LoadView(元数据)方法中。
答案 0 :(得分:0)
从arconaut看answer(即使当时不是接受的答案,它似乎是最干净的方法:
这几乎就像你的第二个提案,只是松散耦合。