使用MVVM light toolkit动态创建ViewModel

时间:2011-09-06 05:42:12

标签: .net wpf mvvm mvvm-light mvvm-toolkit

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

阅读您的帖子看起来更像是您希望为一个View提供多个ViewModel。如果这是正确的,您将需要研究依赖注入。这将允许您根据特定条件将VM注入视图。我个人对此的建议是ninject。

也许拥有更多MVVM Light经验的人可以出现并提供更多信息。我自己就是Caliburn.Micro家伙,虽然比MVVM Light复杂一点,但它在构造函数注入和其他类似的东西方面更具灵活性。