如何使用VML SimpleIoc实例化视图模型?

时间:2012-05-30 14:49:44

标签: silverlight windows-phone-7 mvvm ioc-container mvvm-light

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

SimpleIoc.Default.GetInstance<BViewModel>();

没有用,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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

通过这种方式,您的View与BViewModel的实例相结合,在您的示例中,您只是实例化它。

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

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

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