【发布时间】:2013-04-19 07:51:09
【问题描述】:
我有一个简单的 WPF 应用程序,我使用 Catel (3.5) 框架来使用 MVVM。 Visual Studio中Catel的默认结构是:
Solution:
Project:
FolderView
FolderViewModel
FolderModel
我想把结构改成
Solution:
ProjectView
ProjectViewModel
ProjectModel
这样我完全分离了 M-VM-V 并添加了引用。
我知道,如果遵循命名约定,Catel 会自动扫描项目以查找 Viewmodel。
我无法在第二个结构上完成这项工作,任何建议都会被预处理。
编辑 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 时它不起作用。
【问题讨论】:
-
为什么要拥有 ProjectView 文件夹 2 次?我缺少一个 Viewmodel 文件夹。或者这只是一个错字
-
@BartTeunissen 抱歉,我已经编辑了结构。这只是一个错误。
-
你想使用catel框架有什么原因吗?而不仅仅是坚持在普通 vs 上开发 mvvm 明智的代码?
-
我将从事一个相对较大的项目,我需要一个可靠的框架来工作,我认为 Catel 符合我的需求。
-
清除为雏菊,但在这种情况下,我无法帮助您解决您的问题。我只能用 mvvm 帮助你,而不是用框架;)