Xamarin Form, я перезаписываю OnBackButton, нажмите в коде behein, но мне нужно сделать это в MVVM - PullRequest
0 голосов
/ 19 сентября 2018

Мне нужно переопределить навигационную панель назад, но я хочу сделать это в соответствии с MVVM.Теперь у меня есть что-то, как показано ниже.Я хотел бы перенести логику OnBackButtonPressed в ViewModel, если это возможнокогда нажата соответствующая вкладка

 private void ProfileDetailsCommandExecute()
    {
        ProfileDetailsItemsEnabled = true;
        FollowersItemsEnabled = false;
        CalendarItemsEnabled = false;
        CarsItemsEnabled = false;
        BackgroundProfileDetails = Consts.ACTIVE_COLOR;
        BackgroundFollowers = Consts.UNACTIVE_COLOR;
        BackgroundCars = Consts.UNACTIVE_COLOR;
        BackgroundCalendar = Consts.UNACTIVE_COLOR;
    }

    private void CalendarCommandExecute()
    {
        ProfileDetailsItemsEnabled = false;
        FollowersItemsEnabled = false;
        CarsItemsEnabled = false;
        CalendarItemsEnabled = true;
        BackgroundProfileDetails = Consts.UNACTIVE_COLOR;
        BackgroundFollowers = Consts.UNACTIVE_COLOR;
        BackgroundCars = Consts.UNACTIVE_COLOR;
        BackgroundCalendar = Consts.ACTIVE_COLOR;
    }

Если вам понадобится что-то еще из кода, я надену это.

1 Ответ

0 голосов
/ 19 сентября 2018
protected override bool OnBackButtonPressed()
{
 var vm = (YourViewModel)BindingContext;
 vm.ProfileDetailsCommandExecute();
 vm.CalendarCommandExecute();
 return base.OnBackButtonPressed();
}

Я не знаю, какую именно логику вы хотите сделать, но этот фрагмент кода даст вам доступ к вашей ViewModel, не нарушая MVVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...