Как добавить массив в параметр с помощью 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>();
}
}
}