在Xamarin Forms中的INavigation.PopAsync()之后获得控制权

时间:2015-11-05 17:18:44

标签: xamarin xamarin-forms

我有PageA + ViewModelA和PageB + ViewModelB。

从A我调用PushAsync(B),编辑一些数据,然后调用PopAsync()。

所以现在B关闭,用户返回A.

但是在B用户改变了一些状态,那应该是更新A.什么是通知A更新状态的正确方法(并且最好能够访问ViewModelB)。

的方法:

1. In B call PopAsync(), from NavigationStack get ViewModelA and manually trigger some update method
2. [doesn't work for me] In A call PushAsync(B) and wait until B becomes closed, so after that perform update with access to VMB (PushAsync doesn't lock A, so this approach doesn't work)

似乎这两种方法都不正确。

1 个答案:

答案 0 :(得分:1)

通常在MVVM环境中,当您需要发出“信号”信号时对其他ViewModel的更改,您使用的是Messaging系统。 根据MVVM框架,您需要查看可用于此类的类。

在xamarin表单中,您将拥有消息中心https://developer.xamarin.com/guides/cross-platform/xamarin-forms/messaging-center/