我有一个简单的WPF应用程序,我使用Catel (3.5)框架来使用MVVM。visual studio中Catel的默认结构是:
Solution:
Project:
FolderView
FolderViewModel
FolderModel我想把结构改为
Solution:
ProjectView
ProjectViewModel
ProjectModel通过这种方式,我完全分离了M,并添加了引用。
据我所知,Catel会自动扫描项目,以便在遵守命名约定的情况下找到Viewmodels。
我不能把这个工作做在第二个结构上,任何建议都会被预先处理。
编辑 1:我在App.xaml.cs中添加了以下代码
var viewModelLocator = ServiceLocator.Default.ResolveType<IViewModelLocator>();
viewModelLocator.NamingConventions.Add("CatelV2ViewModel.ViewModels.[VW]ViewModel");这对我不起作用,我也不知道为什么。我确信我的程序集名称是正确的,我用ViewModel结束类名。
编辑 2:如果我添加以下代码,应用程序就能工作:
viewModelLocator.Register(typeof(MainWindow), typeof(MainWindowViewModel));但是我仍然想知道为什么当我添加一个NamingConvention时它是有效的。
发布于 2013-04-19 11:03:20
Catel有许多正在使用的不同的命名约定。大多数情况下,它是通过检查同一个项目中的/Views、/ViewModels、/Models来做到这一点的。
有关Catel中命名约定的更多信息,请访问文档:
https://catelproject.atlassian.net/wiki/display/CTL/Naming+conventions
您可能希望自定义ViewLocator和ViewModelLocator。
https://stackoverflow.com/questions/16099851
复制相似问题