2012-12-30 99 views
0

获取对象实例从IoCContainer我是学生学习的MVVM,和我的工作WPF应用程序。 当我必须从ViewModel_1实例化一个ViewModel_2时,出现了我的问题。 ViewModel_2依赖于在IoC容器中注册的XService。 所以当我问容器解决ViewModel_2,它创建它所需要的服务,其注入的构造函数,并提供视图模型。在视图模型

我的问题是:我一直在阅读容器不应该被任何类引用,但管理其生命周期的引导程序,所以谁给ViewModel_1 ViewModel_2?

我能想到的唯一解决办法是把一个懒惰的ViewModel_1的构造函数,并在需要时访问它,但如果我有超过单个VM管理从那里?

我希望你能帮助我。 非常感谢,新年快乐! =)

回答

0

据我了解,你有ViewModel_1包含财产ViewModel_2。你需要注入这个ViewModel_2 DI。在这种简单的情况下,您可以在ViewModel_1的构造函数中注入ViewModel_2

你应该给我们介绍一下“如果我有超过单个VM管理从那里”的更多细节。 你是什么虚拟机?那是哪里”?如果您发布的代码为ViewModel_1ViewModel_2它将有助于了解您的问题。

+0

谢谢基里尔的回复。 VM2不一定是VM1的属性,而只是在VM1中创建并由其用来执行某些操作的VM。 我不知道如果我有更多的不仅仅是VM2 VM1中创造,我会不得不增加一个构造函数参数,每增加VM还是有一个简单的解决方案? 再次感谢您。 – Sergio

+0

对不起,但你是什么意思,“你可以注入ViewModel_1控制器ViewModel_2”? – Sergio

+0

*构造函数。它的拼写错误 –