C# 使用另一个ViewModel的参数实例化ViewModel

C# 使用另一个ViewModel的参数实例化ViewModel,c#,.net,mvvm,inversion-of-control,ioc-container,C#,.net,Mvvm,Inversion Of Control,Ioc Container,我试图从MainViewModel中实例化SecondViewModel,并在第二个参数中注入IoCContainer中注册的服务和MainVM中的对象 代码是这样的: class MainViewModel { public MainViewModel() { } private string message = "the message"; public string Message { get; set; } } class SecondVi

我试图从MainViewModel中实例化SecondViewModel,并在第二个参数中注入IoCContainer中注册的服务和MainVM中的对象

代码是这样的:

class MainViewModel
{

    public MainViewModel()
    {
    }

    private string message = "the message";
    public string Message { get; set; }

}

class SecondViewModel
{

    public SecondViewModel(IService service, string message)
    {
    }

}
现在,我知道我可以让IoC容器将第二个ViewModelFactory(携带服务实例)注入到MainViewModel中,这样它就可以通过它创建SVM,但是如果iSeries的实现非常繁重,我不想实例化它,但是当我真的需要它的时候,该怎么办呢

如果我必须以类似的方式实例化其他ViewModel呢?我是否必须创建成吨的VMFactory和构造函数参数

如果我使用一个通用的ViewModelFactory,它将需要实例化,传递我拥有的每个ViewModel所需的所有服务,不管它们是否将被创建

你知道我的案子有什么更好的解决办法吗


谢谢大家

不要将Ì服务`传递到第二个视图模型中,而是让第二个视图模型从IoC容器解析
iSeries设备
-实例……但是我必须将MainVM的属性/字段传递到第二个VM的构造函数中。让容器解析第二个VM是如何实现的?啊,很抱歉,我以为这主要是关于传递
iSeries设备
-实例。。。在这种情况下,似乎无法绕过服务模型工厂。。。