2015-11-05 2 views
0

У меня есть страница PageA + ViewModelA и PageB + ViewModelB.Получение контроля после INavigation.PopAsync() в формах Xamarin

От A Я звоню в PushAsync (B), редактируя некоторые данные и вызывая PopAsync().

Так что теперь B замыкается, и пользователь возвращается к А.

Но в пользователя B изменил какое-то состояние, которое должно быть обновление А. Что такое правильный способ уведомить государство обновления (и это было бы лучше иметь доступ к 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

Обычно в среде MVVM, когда вам нужно «сигнализировать» об изменениях в других моделях ViewModels, вы используете систему обмена сообщениями. В зависимости от структуры MVVM вам нужно посмотреть, какой класс доступен для этого.

В форме xamarin у вас будет центр обмена сообщениями https://developer.xamarin.com/guides/cross-platform/xamarin-forms/messaging-center/

Смежные вопросы