0

所以基本上我需要直接从另一个 viewmodel 实例化一个 viewmodel,我正在使用 MVVMLight,人们说我可以使用 MVVMLight ViewModelLocator 来做到这一点,我在我的源 ViewModel A 上尝试了这行代码,以实例化目标 ViewModel B

SimpleIoc.Default.GetInstance<BViewModel>();

没有用,有什么想法吗?

4

1 回答 1

0

如果我理解正确,您需要在 View B 的构造函数中使用您的代码,如下所示:

this.DataContext = SimpleIoc.Default.GetInstance<BViewModel>();

这样,您的视图与 BViewModel 的实例相结合,在您的示例中,您只是在实例化它。

您可以在此处找到有关构建 ViewModel 和 View 的更多信息:

http://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx#sec17

但我确实对 WP7 编程有一些经验,并建议从 View 的构造函数中使用 IOC Container。这是因为您传递的参数将使用 WP7 页面的标准导航方法推送到您的视图中。

于 2012-05-30T15:22:48.473 回答