Как добавить массив в параметр с помощью SimpleIoc в MVVM Light?

Я использую в своем проекте световую библиотеку MVVM. Я пытаюсь добавить массив в конструктор ViewModel.

Например... если код ниже

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

Я хотел бы знать, как внедрять массив в конструктор MainViewModel с классом SimpleIoC.

Есть ли шаблонный способ добавить массив с классом SimpleIoc?

Если да, может кто-нибудь подскажет, как это сделать? Если нет, то каков наилучший способ в этом сценарии?

Спасибо за прочтение.

1 ответ

Решение

Вы можете зарегистрировать Func<MainViewModel> в ViewModelLocator где вы инициализируете массив:

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>();
        }
    }
}
Другие вопросы по тегам