private void CompleteOperationCallback(IViewModel viewModel, IDataContext context)
        {
            var result          = ViewModelExtensions.GetOperationResult(viewModel);
            var operationResult = OperationResult.CreateResult(OperationType.PageNavigation, viewModel, result, context);

            CallbackManager.SetResult(operationResult);
        }
Example #2
0
        protected virtual void MultiViewModelOnViewModelClosed(IMultiViewModel sender, ValueEventArgs <IViewModel> args)
        {
            var context = new NavigationContext(NavigationType.Tab, NavigationMode.Back, args.Value, MultiViewModel.SelectedItem, MultiViewModel);
            var result  = ViewModelExtensions.GetOperationResult(args.Value);

            CallbackManager.SetResult(OperationResult.CreateResult(OperationType.TabNavigation, args.Value, result, context));
        }
Example #3
0
        private void CompleteClose()
        {
            INavigationContext context = CreateCloseContext();

            OnClosed(_closeParameter, context);

            var result = ViewModelExtensions.GetOperationResult(ViewModel);

            OperationCallbackManager.SetResult(OperationResult.CreateResult(OperationType.WindowNavigation, ViewModel, result, context));

            _closeParameter = null;
            _shouldClose    = false;
            _isOpen         = false;
            TView view = View;

            if (view == null)
            {
                return;
            }
            ThreadManager.Invoke(ExecutionMode.AsynchronousOnUiThread, this, view, context, (@base, v, ctx) =>
            {
                @base.CleanupView(v);
                @base._viewManager
                .CleanupViewAsync(@base.ViewModel, ctx)
                .WithTaskExceptionHandler(@base.ViewModel);
            });
            View = null;
        }