MvvmCross перейти обратно из TabLayout - PullRequest
0 голосов
/ 27 сентября 2018

Я использую MvvmCross 5.6.6.Я использую IMvxNavigationService для навигации.Навигация для просмотра модели вкладок из TabLayoutViewModel:

tasks.Add(NavigationService.Navigate<TabOneViewModel>());                               
tasks.Add(NavigationService.Navigate<TabTwoViewModel>());                               tasks.Add(NavigationService.Navigate<TabThreeViewModel>());
tasks.Add(NavigationService.Navigate<TabFourViewModel>());
await Task.WhenAll(tasks);

Все фрагменты используют:

[MvxFragmentPresentation(FragmentHostViewType = typeof(DamagePanelView), FragmentContentId = Resource.Id.content_frame, AddToBackStack = true)]

Как закрыть (удалить) все модели представления вкладок (TabOneViewModel, TabTwoViewModel, TabThreeViewModel, TabFourViewModel)когда я закрываю модель основного вида (TabLayoutViewModel)?

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете использовать что-то вроде этого:

    public virtual Task<bool> Close(IMvxViewModel viewModel)
    {
        var args = new NavigateEventArgs(viewModel);
        OnBeforeClose(this, args);
        var close = ViewDispatcher.ChangePresentation(new MvxClosePresentationHint(viewModel));
        OnAfterClose(this, args);

        return Task.FromResult(close);
    }

Просто сделайте for с этой функцией для каждой страницы, которую вы хотите закрыть в той части кода, которую вы хотите закрыть в модели основного вида.

...