使用另一个参数实例化ViewModel

时间:2012-09-13 21:08:27

标签: 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 SecondViewModel
{

    public SecondViewModel(IService service, string message)
    {
    }

}

现在,我知道我可以让IoC Container将一个SecondViewModelFactory(它携带服务实例)注入到MainViewModel中,因此它可以通过它创建SVM,但是如果IService的实现非常繁重并且我不喜欢我想实例化它,但是当我真的需要它时。

如果我必须以类似的方式实例化其他ViewModel怎么办?我是否必须创建大量的VMFactories和构造函数的参数?

如果我使用通用的ViewModelFactory,它需要实例化,传递我拥有的每个ViewModel所需的所有服务,无论它们是否会被创建。

你知道对我的案子有什么更好的解决方案吗?

谢谢你们

0 个答案:

没有答案