我有嵌套区域
一个。 ParentView / ParentRegion / ParentViewModel
湾Child1View / ChildRegion / Child1ViewModel
湾Child2View / ChildRegion / Child2ViewModel
湾Child3View / ChildRegion / Child3ViewModel
案例1:当Parent在ParentViewModel中进行导航时,我需要有一个事件或触发器。但是父母不知道孩子的类型,所以如果任何孩子无效,我希望提示用户保存或取消。怎么做到这一点?
案例2:我的ChildRegion就像在兄弟姐妹之间导航,即使那时我需要在孩子之间导航时触发事件,如果当前视图无效或不完整,应该能够停止导航
我的试验: 我在所有父母和孩子上做了INavigationAware但是当父导航孩子时没有触发,我没有在父导航中引用孩子。
如何解决此问题?
答案 0 :(得分:0)
您需要在此处使用某些版本的observer模式。每个子区域应订阅由父区域在其INavigationAware.NavigateFrom
方法中触发的事件。另一个事件(或相同的事件,如果不需要单独的功能)可以由每个孩子在其实现中触发
或者,您可以考虑使用CompositeCommand而不是事件。