如何在父区域导航时触发嵌套子区域中的NavigatingFrom

时间:2016-07-08 15:15:04

标签: wpf mvvm prism-5

我有嵌套区域

  

一个。 ParentView / ParentRegion / ParentViewModel
  湾Child1View / ChildRegion / Child1ViewModel
  湾Child2View / ChildRegion / Child2ViewModel
  湾Child3View / ChildRegion / Child3ViewModel

案例1:当Parent在ParentViewModel中进行导航时,我需要有一个事件或触发器。但是父母不知道孩子的类型,所以如果任何孩子无效,我希望提示用户保存或取消。怎么做到这一点?

案例2:我的ChildRegion就像在兄弟姐妹之间导航,即使那时我需要在孩子之间导航时触发事件,如果当前视图无效或不完整,应该能够停止导航

我的试验: 我在所有父母和孩子上做了INavigationAware但是当父导航孩子时没有触发,我没有在父导航中引用孩子。

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

您需要在此处使用某些版本的observer模式。每个子区域应订阅由父区域在其INavigationAware.NavigateFrom方法中触发的事件。另一个事件(或相同的事件,如果不需要单独的功能)可以由每个孩子在其实现中触发

或者,您可以考虑使用CompositeCommand而不是事件。