4

我有嵌套区域

一个。父视图/父区域/父视图模型
b. Child1View/ChildRegion/Child1ViewModel
b. Child2View/ChildRegion/Child2ViewModel
b. Child3View/ChildRegion/Child3ViewModel

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

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

我的试验:我对所有父母和孩子都做了 INavigationAware 但是当父母导航孩子时不会触发,我在父母导航中没有提到孩子。

我该如何解决这种情况?

4

1 回答 1

0

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

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

于 2016-07-21T19:53:26.577 回答