如何在 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>();
}
}
}
我在我的项目中使用了 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>();
}
}
}