Доброе время суток. Есть следующая схема:
Некоторая ContentPageA у которой BindingContext = ViewModel1 хранит некоторый ObjectA, затем при клике пользователя, ViewModel1 с помощью Navigation.PushAsync() открывает некоторую ContentPageB, у которой BindingContext = ViewModel2. Пользователь совершает некоторый выбор, после чего нужно 1) закрыть ContentPageB, 2) вернуться к ContentPageA и 3) обновить ObjectA в соответствии с тем, что пользователь выбрал в ContentPageB.
Подскажите, как осуществить правильно пункт 3? Вернуться можно при помощи PopAsync(), но как передать новые данные?
Можно реализовать посредством передачи ViewModel1 в конструктор ContentPageB. В классе ContentPageB необходимо будет переопределить метод OnBackButtonPressed(). Например:
public partial class ContentPageB : ContentPage
{
private ViewModel _viewModel;
public ContentPageB (ViewModel vm)
{
InitializeComponent ();
_viewModel = vm
this.BindingContext = ViewModel2;
}
protected override bool OnBackButtonPressed()
{
_viewModel.ObjectA = ViewModel2.ObjectB;
base.OnBackButtonPressed();
return false;
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости