我继承了一个使用视图优先 MVMC 模式的应用程序
在应用程序中,我创建了两步流程,该流程创建了一个人并将他们分配给一个组。为此,我创建了一个名为 CreatePersonMaster 的视图和相应的视图模型(所有视图与视图模型具有 1-2-1 关系,视图模型被注入到 View 构造函数中,并使用 TransientLifetimeManager 向 Unity 容器注册) ,视图只包含一个区域(由虚线显示),可以将子视图加载到该区域中,并且视图模型订阅两个松散耦合的事件,“PersonCreated”和“GroupSelected”。“PersonCreated”事件将 Person 实体保存在字段中,“GroupSelected”事件获取保存的 Person,创建组关联并将它们保存到数据库。
在引发事件之前,此视图/视图模型不会执行任何操作,因此我将以下子视图加载到我的区域中。
这些视图/视图模型触发由主视图处理的事件。
我还有一个编辑视图,我想在其中重新使用选择组视图。
我可以通过订阅 EditPersonMaster 视图模型中的适当事件来做到这一点。
我的问题真的是,这是正确的方法吗?因为我使用的是松散耦合的事件,所以如果在创建/重新分配时出现错误,我不会在子视图/视图模型中得到任何反馈?我可能会为内部视图/模型触发另一个“ErrorBlah”事件来处理和更新视图。
还有另一种方法可以做到这一点吗?复合命令似乎不符合要求,但也许我没有正确理解它们。