是否可以将参数传递给 ViewModel 构造函数?然后,我会使用此参数来初始化属性和/或在 ViewModel 中执行其他操作。
使用 WinForms 我可以做到
public MyForm(MyParamType myParam) { MyFormProperty = myParam; //etc. }
我如何着手在 MVVM 模式/使用 MVVM Light 中做类似的事情?
我们非常欢迎任何建议。提前致谢。
最佳答案
我建议使用 IoC 容器并配置您的容器以在构建时提供参数。
例如,对于我来说,WPF 中 UserControl 的典型代码隐藏是这样的:
public partial class MyDataGridView : IMyListView
{
public MyDataGridView()
{
InitializeComponent();
}
public MyDataGridView(MyListViewModel viewModel)
{
InitializeComponent();
DataContext = viewModel;
}
}
StructureMap 为我创建了 MyListViewModel,因为默认情况下它会搜索最贪婪的构造函数,然后提供依赖项。在我的 StructureMap 配置中,我可以指定为 MyListViewModel 提供构造该对象时所需的任何参数。
使用像 StructureMap 这样的容器,我不必“新建”对象。曾经。
关于c# - 将参数传递给 ViewModel 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818506/