多个视图共享同一视图模型时如何导航

时间:2011-11-30 06:44:57

标签: silverlight mvvm prism mef

我有一个视图模型具有相当复杂的对象结构。我希望用户能够在viewmodel上向实体添加少量数据,并创建了第二个视图,该视图将导航到与第一个视图相同的区域。由于对附加视图的视图模型的要求非常少,因此它与初始视图共享相同的ViewModel。在单击按钮时,我想加载其他视图,允许用户输入一些将更新视图模型的数据,然后单击“确定”按钮,然后使用导航服务将GoBack添加到上一个视图。然而,呼吁

_regionManager.RequestNavigate(<regionname>, <viewname>

似乎无能为力。我已将ViewModel标记为NonShared并在视图的代码隐藏中放置了一个断点,其中导入了viewmodel,但断点从未被命中。我在这里错过了什么?或者,有没有更好的方法来实现我想要实现的目标?

1 个答案:

答案 0 :(得分:0)

在PRISM中 - 有2种导航策略。基于状态的导航和基于视图的导航。听起来你所做的事情可能是基于状态的导航和不需要的单独视图。

然而,没有什么能阻止你做你想做的事。我只想测试 - 尝试将NonShared放在视图上。我很确定你的组成错误。 RegionManager不会抛出异常,它会默认吞下这些异常。要真正了解正在发生的事情 - 为RegionManager添加事件处理程序并查看您获得的异常。更多详情:http://blogs.southworks.net/gmaliandi/2011/08/how-to-prevent-region-navigation-from-hiding-exceptions-in-prism/

相关问题