在带有单例工具窗口的 MVVM MDI 应用程序中(想想 Visual Studio),工具窗口内容会根据当前选定的文档而变化。现在有 5 个工具窗口,以后还会有更多。
我可以为每个文档的每个工具窗口重用或创建新的视图和/或视图模型。我的问题是是否有压倒性的理由选择或排除这些选项之一?还有另一个我完全错过的选择吗?
对于每个工具窗口:
每个文档创建一个新的 View+ViewModel。当用户切换文档时,工具窗口切换 View+ViewModel。此选项的内存成本较高,但性能很好。
为每个文档创建一个 ViewModel,但重用 View。使用 MVVM 模式这是可行的,但 UI 重新布局可能会很昂贵。
重用 View 和 ViewModel 以最小化内存使用。重置 ViewModel 并加载另一组数据可能很难做到。