队
我正在使用MvvmLight框架学习Mvvm。该框架在一个项目中创建了Views,ViewModels和Locator。但实际上我们希望将View模型保存在不同的项目中。所以现在问题是ViewModelLocator的理想位置。应该是在UI层还是ViewModel类库中。 MvvmLight在ViewModels文件夹中创建定位器以及ViewModels。
谢谢和REgards DEV1
答案 0 :(得分:2)
嗨,欢迎来到MVVM和WPF的精彩世界。
你的问题有点棘手,因为好的回应,通常是设计问题:它取决于......
在第一个approch我建议让它在视图项目中。因为定位器是特定视图本地化所需viewModel的方式。
但我想如果你为viewModel使用另一个项目,目的是为其他软件重用这个项目(因此是viewModels)?在这种情况下,我会说:你的ViewModelLocator也将是可重用的吗?
如果是(意味着每次foreach视图项目使用它时都会找到相同的viewModel),在viewModel项目中使它是合乎逻辑的。
如果不是,最好让特定的Locator只定位所需的viewModel foreach视图项目。
希望它有所帮助。