如何在 MVVM Light 中使用 SimpleIoc 将数组添加到参数?

How to add array to the paramter with SimpleIoc in the MVVM Light?

我在我的项目中使用了 MVVM 灯光库。 我试图将一个数组添加到 ViewModel 的构造函数中。

例如...如果下面的代码是

public MainViewModel(ToolWindowViewModel[] toolItems)
{
    // to do
}

我想知道一种使用 SimpleIoC 将数组注入 MainViewModel 的构造函数的方法 class。

是否有公式化的方法来使用 SimpleIoc 添加数组 class?

如果是,谁能告诉我该怎么做? 如果不是,这种情况下最好的方法是什么?

感谢阅读。

您可以在初始化数组的 ViewModelLocator 中注册一个 Func<MainViewModel>

public class ViewModelLocator
{
    public ViewModelLocator()
    {
        ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
        SimpleIoc.Default.Register(new System.Func<MainViewModel>(() => new MainViewModel(new ToolWindowViewModel[0])));
    }

    public MainViewModel Main
    {
        get
        {
            return ServiceLocator.Current.GetInstance<MainViewModel>();
        }
    }
}