我正在构建一个基于 MVVM-Light 的应用程序。我需要创建同一个视图的多个实例,每个实例都应该绑定到自己的 ViewModel。
默认将ViewModelLocator
ViewModel 实现为单例,因此同一个 View 的不同实例将绑定到同一个 ViewModel。
我可以在 VMLocator 中将 ViewModel 创建为非静态对象(就像返回 new VM()... 一样简单),但这只会部分帮助我。事实上,我仍然需要跟踪打开的窗口。然而,每个窗口可能会打开其他几个窗口(尽管类型不同)。在这种情况下,我可能需要对父视图及其所有子视图执行一些操作。例如,在关闭视图 P 之前,我可能想要关闭它的所有子视图(视图 C1、视图 C2 等)。
因此,是否有任何简单易行的方法来实现这一目标?或者您有什么最佳实践建议我遵循吗?
提前感谢您的宝贵帮助。
干杯,
吉安卢卡。