我正在重新设计一个与棱镜配合使用的应用程序。当前应用程序在与viewviewmodel对应的viewmodel中实现了一些open / save / save as,... routed命令。使用命令添加到窗口的命令绑定中的行为。在新设计中,这个逻辑不属于shell而是属于模块。
更复杂的是,在处理'open'命令之前,该模块没有激活视图。所以,即使我要添加到视图的命令绑定,这也行不通,因为没有什么可以路由到。我有一个添加到功能区的视图,但它通过一个与shell功能区合并的适配器,并将合并后的元素从旧父级分离到主功能区,保留每个元素的DataContext(类似于{{3}尝试将commindbinding添加到commindbindings只是为了使它工作起来是不对的。
这似乎是一个常见的问题,但我找不到任何有关它的信息。以某种方式使用服务是不是一个好主意?让shellvm绑定到shell命令绑定并通过接口公开它们?关于如何解决这个问题的任何建议?