C# 准备耦合性差且必须以某种方式相互作用的ViewModel的最佳实践是什么
用例:C# 准备耦合性差且必须以某种方式相互作用的ViewModel的最佳实践是什么,c#,wpf,mvvm,C#,Wpf,Mvvm,用例: 假设有一个以WPF+MVVM方式构建的工具 说到它的外观,可以将它与VisualStudioIDE或其他IDE进行比较 它包含两个可固定的工具 它包含菜单操作和一些附加的页脚信息,这些信息可以根据不同的操作进行更改,例如,当项目成功加载时 如果使用加载另一个项目,则应在不同视图上重新加载一些数据 我想知道如何实现良好的关注点分离,同时实现模块、视图模型之间的交互 建议的已知解决方案: 所有东西都可以组合在一个核心的MainViewModel中——不幸的是,它并没有给出concrns
- 假设有一个以WPF+MVVM方式构建的工具
- 说到它的外观,可以将它与VisualStudioIDE或其他IDE进行比较
- 它包含两个可固定的工具
- 它包含菜单操作和一些附加的页脚信息,这些信息可以根据不同的操作进行更改,例如,当项目成功加载时
- 如果使用加载另一个项目,则应在不同视图上重新加载一些数据
- 我想知道如何实现良好的关注点分离,同时实现模块、视图模型之间的交互
- 所有东西都可以组合在一个核心的MainViewModel中——不幸的是,它并没有给出concrns的分离,代码也不干净,可以与God对象反模式相比较
- 另一种选择是使用Messenger或EventAggregator,例如嵌入MVVM light toolkit中的Messenger之类的东西,但根据我的经验,这并不是最好的解决方案
- 我曾考虑过Prism框架,但也许它有点过头了
- 另一个选择是将模块划分为功能视图模型,其中一些模块应该注入到另一个模块中,但这并不容易实现
- 关注点分离
- 每个视图模型的单一功能职责
- 可测试性