在没有服务定位器的情况下注入ViewModel

时间:2016-04-25 07:53:01

标签: .net wpf xaml mvvm win-universal-app

我个人认为Service Locator是一种反模式,但我发现看到一个" ViewModelLocator"每个视图从基于XAML的应用程序中获取其DataSource。

这是如何避免的?

1 个答案:

答案 0 :(得分:2)

您可以使用使用约定的MVVM框架,例如Caliburn.Micro。在Caliburn中,您在应用程序启动时将ViewModel注册到DI容器。 然后,当你有一个TestView时,它会自动绑定到TestViewModel(按名称约定,框架在DI容器中查找ViewModel,获取/创建一个实例并绑定它。)。