关于存储库模式和MVVM的问题
我有一个名为MemberRepository的存储库,由MemberListViewModel和MemberEditViewModel使用。在存储库中,我有GetMember()、CreateMember、SaveMember、Rollback()和DeleteMember() 在我的整个应用程序中,我有许多填充组合框的查找表。示例状态、交易代码、代理、用户等。我将GetUsers、GetStatuses()和GetTradeCodes()方法放在哪里?在使用它们的适当存储库中 例如,成员视图模型需要一个状态、交易代码、类等的列表,所以我会将这些的get放在MemberRepository中关于存储库模式和MVVM的问题,mvvm,Mvvm,我有一个名为MemberRepository的存储库,由MemberListViewModel和MemberEditViewModel使用。在存储库中,我有GetMember()、CreateMember、SaveMember、Rollback()和DeleteMember() 在我的整个应用程序中,我有许多填充组合框的查找表。示例状态、交易代码、代理、用户等。我将GetUsers、GetStatuses()和GetTradeCodes()方法放在哪里?在使用它们的适当存储库中 例如,成员视图模
Bill好的,因此您的
MemberListViewModel
用于列表页面,而MemberEditViewModel
用于编辑页面
在我的模型中,我要做的是公开以下类:
ListMembersTask
EditMemberTask
ListMembersTask
可能有一个名为CreateMember()
的方法,该方法返回一个用空成员对象初始化的新的EditMemberTask
然后,您的ViewModel
将被注入相应的任务(因此MemberListViewModel
将被注入ListMembersTask
,等等)。您的MemberListViewModel
将具有一个RelayCommand
,该命令调用CreateMember()
,并获取返回的EditMemberTask
,将其注入MemberEditViewModel
并将新的MemberEditViewModel
传递给演示者
如果您采用这种方法,那么存储库只负责持久性。任务在会话期间封装业务逻辑的状态,而视图模型只是使任务可绑定
我一直在做的下一步是省去特定于任务的视图模型,现在我将一个原始任务交给演示者,它检查对象,并用基本视图模型元素为任务构建视图模型层次结构(如EditTextViewModel
,ChooseOneViewModel
,DockingLayoutViewModel
等)