所以基本上我需要直接从另一个viewmodel实例化一个viewmodel,我正在使用MVVMLight,人们说我可以使用MVVMLight ViewModelLocator这样做,我在我的源ViewModel A上尝试了这行代码来实例化目标ViewModel B
SimpleIoc.Default.GetInstance<BViewModel>();
没有用,有什么想法吗?
答案 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中。