IoC容器在MVVMLight中的好处
本文关键字:MVVMLight IoC | 更新日期: 2023-09-27 18:01:59
在MVVM Light中IoC容器的好处是什么?ViewModelLocator的好处是什么?为什么不像下面这样在XAML文件中直接实例化视图模型?
<UserControl>
<UserControl.DataContext>
<vm:MainViewModel/>
</UserControl.DataContext>
<!-- Other user control elements here -->
</UserControl>
在Xaml中实例化视图模型绝对没问题,但是有一些事情需要考虑…
- 当您使用Xaml作为视图模型时,VM构造函数在主窗口的
InitializeComponent
方法期间被调用。这意味着VM将在UI线程上创建。有些开发者喜欢这样,有些则不喜欢。 - 另外,当你使用Xaml时,它就像"硬编码"VM,这破坏了后期绑定和模块发现,而这些在大型复合应用程序中起着不可或缺的作用
- 与前一点有点相关,一些团队喜欢解耦所有内容,并使用配置文件来告诉应该实例化哪个vm。如果要进行隔离测试,此方法特别有用。
对于想要使用MVVM的小型一次性WPF应用程序,Xaml方法很好;但随着应用程序的成熟,最终将需要一种更具工业实力的方法。这就是IoC容器必不可少的地方。