1

我有一个搜索视图和详细信息(2-3)视图,这取决于搜索视图的选择。在选择时,搜索视图模型发送消息以将视图更改为主视图模型,并且还发送带有所选 ID 的消息。

当主视图模型收到视图更改消息时,它会调用详细视图 1。这将在 Locator 中查找 datacontext 中指定的视图模型。验证此视图详细信息后,应显示详细视图 2,并在搜索中显示所选用户的详细信息。

我在看 MIX 11 的视频。有点想法。但我想使用 MVVM 工具包 3 来做到这一点。

因此,如果我创建一个包含所有详细视图模型的类并在选择更改事件时填充所需的视图模型对象,我应该会很好。但是我还应该在定位器中声明静态虚拟机吗?如果视图正在寻找 detailviewmodel1 类型的数据上下文,我如何与视图模型定位器通信,使用此类而不是定位器中的静态 VM?

4

1 回答 1

0

我不确定是否需要动态 ViewModel。ViewModel 只是一个或多个模型的包装器,用于为 View 提供挂钩。话虽如此,如果您已经知道 View,那么您已经知道 ViewModel 并且应该在设计时实现它。

阅读您的帖子,您看起来更像是希望为一个视图拥有多个 ViewModel。如果这是正确的,您将需要研究依赖注入。这将允许您根据某些标准将 VM 注入到视图中。我个人对此的建议是ninject。

也许有更多 MVVM Light 经验的人可以来提供更多信息。我自己是一个 Caliburn.Micro 小伙子,虽然比 MVVM Light 复杂一点,但它在构造函数注入和其他类似事情方面具有更大的灵活性。

于 2011-09-11T12:33:17.987 回答