【发布时间】:2017-10-24 02:12:45
【问题描述】:
MVVM light ViewModelLocator 是否可以识别正在加载的视图,然后动态生成视图模型?
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
//Find the current window/ user control loading
ContentControl control =
//Generate the View model dynamically
//Register to dynamically created view model
SimpleIoc.Default.Register<SelectedViewModel>();
}
【问题讨论】:
-
不知道,但这是个好主意!自动生成视图模型?
-
是的,约翰,这样我以后就不必注册所有不同的视图模型了,这样对于下一个视图,我可以只添加视图和视图模型,然后一切都可以在定位器中没有任何代码更改的情况下发生.
-
为什么不只是创建一个新的 ViewModel 然后将 VM 传递给 View 构造函数并在代码中创建它。这不是更多的代码,而且你在做什么更明显。
-
@rolls,那样我必须做很多编码。 MVVM-Light MVL 大大减少了编码。我看到的唯一问题是每次添加新视图时,我(我团队中的某个人)必须向 VML 添加一个属性变量来处理它,所以我问了这个。
标签: c# mvvm mvvm-light viewmodellocator