Xamarin.Form обновление данных при переходе на следующую страницу и обратно

253
23 февраля 2018, 15:02

Доброе время суток. Есть следующая схема:

Некоторая ContentPageA у которой BindingContext = ViewModel1 хранит некоторый ObjectA, затем при клике пользователя, ViewModel1 с помощью Navigation.PushAsync() открывает некоторую ContentPageB, у которой BindingContext = ViewModel2. Пользователь совершает некоторый выбор, после чего нужно 1) закрыть ContentPageB, 2) вернуться к ContentPageA и 3) обновить ObjectA в соответствии с тем, что пользователь выбрал в ContentPageB.

Подскажите, как осуществить правильно пункт 3? Вернуться можно при помощи PopAsync(), но как передать новые данные?

Answer 1

Можно реализовать посредством передачи 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;
    }
}
READ ALSO
Изменение или создание своего контрола

Изменение или создание своего контрола

Добрый деньВнезапно понадобился листбокс, но не простой, а с доп свойствами, хотелось бы, чтобы он имел примерно такую структуру:

597
RequireJS и плагины jQuery

RequireJS и плагины jQuery

Я только начал разбираться с RequireJS, но у меня появился уже вопросДопустим я имею два плагина для jQuery: a

276
Javascript вернуться в начало кода

Javascript вернуться в начало кода

Для того чтобы снова ввести число, нужно обновить страничкуМожно ли сделать, чтобы после неверного ответа программа сама снова предлагала...

379