Exemplo n.º 1
0
        public void ExitModelContext(NavigationContext oldContext, NavigationContext newContext)
        {
            NavigationData navigationData = GetNavigationData(oldContext, false);

            navigationData.Dispose();
            ReleaseModelData();
        }
Exemplo n.º 2
0
 public void ChangeModelContext(NavigationContext oldContext, NavigationContext newContext, bool push)
 {
     PrepareState(newContext);
     if (push)
     {
         NavigationData navigationData = GetNavigationData(oldContext, false);
         navigationData.Disable();
         navigationData = GetNavigationData(newContext, false);
         navigationData.Enable();
     }
     else
     {
         NavigationData navigationData = GetNavigationData(oldContext, false);
         navigationData.Dispose();
         navigationData = GetNavigationData(newContext, false);
         navigationData.Enable();
     }
 }
        public void ChangeModelContext(NavigationContext oldContext, NavigationContext newContext, bool push)
        {
            PrepareState(newContext);
            if (push)
            {
                NavigationData navigationData = GetNavigationData(oldContext, false);
                navigationData.Disable();
                SaveUIState(oldContext);
                navigationData = GetNavigationData(newContext, false);
                navigationData.Enable();

                if (navigationData.CurrentScreenData.SkipForSingleItem && navigationData.CurrentScreenData.Items.Count == 1)
                {
                    var command = navigationData.CurrentScreenData.Items.FirstOrDefault()?.Command;
                    if (command != null)
                    {
                        newContext.SetContextVariable(WorkflowManager.KEY_NAVIGATION_SKIP_ACTION, command);
                    }
                }
            }
            else
            {
                NavigationData navigationData = GetNavigationData(oldContext, false);
                navigationData.Dispose();
                navigationData = GetNavigationData(newContext, false);
                navigationData.Enable();

                if (navigationData.CurrentScreenData.SkipForSingleItem && navigationData.CurrentScreenData.Items.Count == 1)
                {
                    newContext.SetContextVariable(WorkflowManager.KEY_NAVIGATION_SKIP_ACTION, new MethodDelegateCommand(() =>
                    {
                        var wfManager = ServiceRegistration.Get <IWorkflowManager>(false);
                        wfManager?.NavigatePop(1);
                    }));
                }
            }
        }