【发布时间】:2016-12-16 18:06:58
【问题描述】:
为什么 MVVM Light 中ViewModelLocator 的构造函数和成员不是静态的?考虑到我在构造函数中执行 IOC 注册过程是这样的:
SimpleIoc.Default.Register<MainWindowVM>();
这是否意味着每次我在视图 (XAML) 中使用它时,它都会创建一个 ViewModelLocator 的新实例,从而一遍又一遍地注册我的类?
另外,如果我需要在代码中访问它怎么办?我需要在每个地方都创建一个 ViewModelLocator 的实例吗?
【问题讨论】:
-
不是单例吗?
-
@MikeEason:不,从 5.3 开始。
-
因为这就是他们实现它的方式。人们远离静态的原因有很多。解耦以简化测试任务是一项主要任务。如果你真的想知道,你需要询问MVVM Light的开发者。
标签: c# wpf mvvm inversion-of-control mvvm-light