在Wpf mvvm中ViewModelLocator的位置应该是什么

时间:2014-09-09 07:01:14

标签: wpf mvvm view model mvvm-light

我正在使用MvvmLight框架学习Mvvm。该框架在一个项目中创建了Views,ViewModels和Locator。但实际上我们希望将View模型保存在不同的项目中。所以现在问题是ViewModelLocator的理想位置。应该是在UI层还是ViewModel类库中。 MvvmLight在ViewModels文件夹中创建定位器以及ViewModels。

谢谢和REgards DEV1

1 个答案:

答案 0 :(得分:2)

嗨,欢迎来到MVVM和WPF的精彩世界。

你的问题有点棘手,因为好的回应,通常是设计问题:它取决于......

在第一个approch我建议让它在视图项目中。因为定位器是特定视图本地化所需viewModel的方式。

但我想如果你为viewModel使用另一个项目,目的是为其他软件重用这个项目(因此是viewModels)?在这种情况下,我会说:你的ViewModelLocator也将是可重用的吗?

如果是(意味着每次foreach视图项目使用它时都会找到相同的viewModel),在viewModel项目中使它是合乎逻辑的。

如果不是,最好让特定的Locator只定位所需的viewModel foreach视图项目。

希望它有所帮助。