【发布时间】:2011-02-19 07:20:45
【问题描述】:
我正在构建一个基于 MVVM-Light 的应用程序。我需要创建同一个 View 的多个实例,每个实例都应该绑定到自己的 ViewModel。
默认 ViewModelLocator 将 ViewModel 实现为单例,因此同一 View 的不同实例将绑定到同一 ViewModel。
我可以在 VMLocator 中将 ViewModel 创建为非静态对象(就像返回 new VM()...一样简单),但这只会部分帮助我。 事实上,我仍然需要跟踪打开的窗口。然而,每个窗口可能会打开其他几个窗口(尽管类型不同)。在这种情况下,我可能需要对父视图及其所有子视图执行一些操作。例如,在关闭视图 P 之前,我可能想要关闭它的所有子视图(视图 C1、视图 C2 等)。
因此,有没有简单易行的方法来实现这一点?或者您有什么最佳实践建议我遵循?
提前感谢您的宝贵帮助。
干杯,
詹卢卡。
【问题讨论】:
-
好的,我不确定我是否走在正确的道路上,但我发现了一篇有趣的文章(John Papa - johnpapa.net/silverlight/…),我正在尝试以这种方式实现 ViewModelLocator。不过,我仍然不确定如何处理我可能创建的众多视图中的特定视图...
标签: c# wpf mvvm mvvm-light