コード例 #1
0
        private void ClearNavigationStackIfNeed(IDataContext context)
        {
            if (context == null)
            {
                context = DataContext.Empty;
            }
            var backStack = _frame.BackStack;

            if (!context.GetData(NavigationConstants.ClearBackStack) || backStack.IsReadOnly)
            {
                return;
            }
            for (int index = 0; index < backStack.Count; index++)
            {
                var vmId      = GetViewModelIdFromParameter(backStack[index].Parameter);
                var viewModel = _viewModelProvider.TryGetViewModelById(vmId);
                if (viewModel != null)
                {
                    var ctx = new DataContext(context);
                    ctx.AddOrUpdate(NavigationConstants.ViewModel, viewModel);
                    RaiseNavigated(new RemoveNavigationEventArgs(ctx));
                }
                backStack.RemoveAt(index);
                --index;
            }
        }
コード例 #2
0
        private void ClearNavigationStack(IDataContext context)
        {
            var backStack = _frame.BackStack;

            if (backStack.IsReadOnly)
            {
                return;
            }
            for (int index = 0; index < backStack.Count; index++)
            {
                var vmId      = GetViewModelIdFromParameter(backStack[index].Parameter);
                var viewModel = _viewModelProvider.TryGetViewModelById(vmId);
                if (viewModel != null)
                {
                    var ctx = new DataContext(context);
                    ctx.AddOrUpdate(NavigationConstants.ViewModel, viewModel);
                    RaiseNavigated(new NavigationEventArgs(MugenMvvmToolkit.Models.NavigationMode.Remove, ctx, null, null));
                }
                backStack.RemoveAt(index);
                --index;
            }
        }