【发布时间】:2011-06-12 18:53:15
【问题描述】:
场景:
- 应用加载 ViewA 及其关联的 ViewModelA。
-ViewA 有一个按钮,该按钮将命令绑定到 ViewModelA 上的命令。
-ViewModelA 处理命令,应创建并显示 ViewB 的实例。
问题是,谁应该负责创建 ViewB 的实例?
ViewModel 不应该对视图一无所知似乎是合理的,所以我看到了一些可行的可能性:
1) ViewModelA 可以设置一个由 ViewA 监控的属性,以便 ViewA 知道创建 ViewB 的实例。但这似乎会让 ViewA 承担太多责任。
2)您可以将某种 ViewManager 服务注入 ViewModelA,当它处理来自 ViewA 的命令时,它可以使用 command 参数将某种适当的元数据传递给 ViewManager 的 LoadView(metadata) 方法。
【问题讨论】: