我个人认为Service Locator是一种反模式,但我发现看到一个" ViewModelLocator"每个视图从基于XAML的应用程序中获取其DataSource。
这是如何避免的?
答案 0 :(得分:2)
您可以使用使用约定的MVVM框架,例如Caliburn.Micro。在Caliburn中,您在应用程序启动时将ViewModel注册到DI容器。 然后,当你有一个TestView时,它会自动绑定到TestViewModel(按名称约定,框架在DI容器中查找ViewModel,获取/创建一个实例并绑定它。)。