这是我第一次尝试MVVM。我的应用程序的核心是松散地基于Josh Smith的msdn文章。而且我还在使用mvvm light框架。
我有一个主窗口,其中包含一个命令列表区域和一个工作区,该区域将用户控件/ View 显示为Tabitem,每个用户控件都有一个对应的ViewModel。 mainWindow还有一个包含我的命令列表的 View 模型,而工作区 View 模型有一个基本的工作区 View 模型。
我的默认 View 具有MappingSets的主数据网格,可以具有一个选定的项目。这些命令将启动带有 View 的新标签项,这些 View 可根据所选项目处理MappingSet详细信息。我有一个View/ViewModel,根据所使用的命令,它应该返回一个Tabitem(用于创建不包含现有数据的新MappingSet),或者一个Tabitem,其中包含用于编辑的所选项目的详细信息,或者一个Tabitem,其包含以下内容:新MappingSet的基础。
设置好场景后,我仍然无法解决的是依赖于命令的方式来传递参数(例如,所选MappingSet对象的标识符)以上述三种状态之一实例化我的 View 模型?例如,mvvmlight Messenger是否适合此任务?
最佳答案
对于Messenger/EventAggregator,这是一个完美的方案。但是,您的消息链可能有点困惑。据我了解,您的主窗口包含命令列表(如菜单或功能区)。这是我如何看待事件链。
关于wpf - wpf mvvm使用命令在 View 模型之间传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4652187/