public virtual async Task <TResult> Navigate <TParameter, TResult>(string path, TParameter param, IMvxBundle presentationBundle = null) where TParameter : class where TResult : class
        {
            var request = await NavigationRouteRequest(path, presentationBundle);

            var viewModel = (IMvxViewModel <TParameter, TResult>)request.ViewModelInstance;

            var args = new NavigateEventArgs(viewModel);

            OnBeforeNavigate(this, args);

            var tcs = new TaskCompletionSource <TResult>();

            viewModel.SetClose(tcs);

            ViewDispatcher.ShowViewModel(request);
            await viewModel.Initialize(param);

            OnAfterNavigate(this, args);

            try
            {
                return(await tcs.Task);
            }
            catch
            {
                return(default(TResult));
            }
        }
示例#2
0
        private void OnNaviNavigate(object o, NavigateEventArgs args)
        {
            tvSearchResult.Fill(navi.PageItems, database, false);

            itemInfo.Clear();
            itemInfo.Hide();
        }
示例#3
0
 protected void OnBeforeNavigate(NavigateEventArgs args)
 {
     if (BeforeNavigate != null)
     {
         BeforeNavigate(this, args);
     }
 }
示例#4
0
            public void BeforeNavigate2(object pDisp, ref object url, ref object flags, ref object targetFrameName, ref object postData, ref object headers, ref bool cancel)
            {
                NavigateEventArgs args = new NavigateEventArgs(url.ToString());

                _browser.OnBeforeNavigate(args);
                cancel = args.Cancel;
            }
        public void NavigationServiceCallsHanderWithParamter()
        {
            var fixture = new Fixture().Customize(new AutoMoqCustomization());

            var sut = fixture.Create <MVCNavigationService>();

            NavigateEventArgs eventArgs    = null;
            object            calledObject = null;
            bool called = false;

            sut.NavigateTo += (o, e) =>
            {
                eventArgs    = e as NavigateEventArgs;
                calledObject = o;
                called       = true;
            };

            int param = 99;

            sut.Navigate("some page", param);

            Assert.IsTrue(called);
            Assert.AreEqual(sut, calledObject);
            Assert.AreEqual(eventArgs.view, "some page");
            Assert.IsInstanceOfType(eventArgs.parameter, typeof(int));
            int actualParam = (int)eventArgs.parameter;

            Assert.AreEqual(99, actualParam);
        }
        public virtual async Task <TResult> Navigate <TViewModel, TResult>(IMvxBundle presentationBundle = null, CancellationToken cancellationToken = default(CancellationToken))
            where TViewModel : IMvxViewModelResult <TResult>
            where TResult : class
        {
            var viewModel = (IMvxViewModelResult <TResult>)LoadViewModel <TViewModel>();
            var request   = new MvxViewModelInstanceRequest(viewModel)
            {
                PresentationValues = presentationBundle?.SafeGetData()
            };

            var args = new NavigateEventArgs(viewModel);

            OnBeforeNavigate(this, args);

            var tcs = new TaskCompletionSource <TResult>();

            viewModel.SetClose(tcs, cancellationToken);

            ViewDispatcher.ShowViewModel(request);
            await viewModel.Initialize();

            OnAfterNavigate(this, args);

            try
            {
                return(await tcs.Task);
            }
            catch
            {
                return(default(TResult));
            }
        }
        public virtual async Task <TResult> Navigate <TParameter, TResult>(IMvxViewModel <TParameter, TResult> viewModel, TParameter param, IMvxBundle presentationBundle = null)
            where TParameter : class
            where TResult : class
        {
            RunViewModelLifecycle(viewModel);
            var request = new MvxViewModelInstanceRequest(viewModel)
            {
                PresentationValues = presentationBundle?.SafeGetData()
            };

            var args = new NavigateEventArgs(viewModel);

            OnBeforeNavigate(this, args);

            var tcs = new TaskCompletionSource <TResult>();

            viewModel.SetClose(tcs);

            ViewDispatcher.ShowViewModel(request);
            await viewModel.Initialize(param);

            OnAfterNavigate(this, args);

            try
            {
                return(await tcs.Task);
            }
            catch
            {
                return(default(TResult));
            }
        }
示例#8
0
        public async Task <TResult> Navigate <TViewModel, TResult>()
            where TViewModel : IMvxViewModelResult <TResult>
            where TResult : class
        {
            var args = new NavigateEventArgs(typeof(TViewModel));

            OnBeforeNavigate(this, args);

            var viewModel = (IMvxViewModelResult <TResult>)Mvx.IocConstruct <TViewModel>();
            var request   = new MvxViewModelInstanceRequest(viewModel);

            var tcs = new TaskCompletionSource <TResult>();

            viewModel.SetClose(tcs);

            _viewDispatcher.ShowViewModel(request);

            OnAfterNavigate(this, args);

            try
            {
                return(await tcs.Task);
            }
            catch
            {
                return(default(TResult));
            }
        }
示例#9
0
        public async Task <TResult> Navigate <TParameter, TResult>(string path, TParameter param) where TParameter : class where TResult : class
        {
            var args = new NavigateEventArgs(path);

            OnBeforeNavigate(this, args);

            var viewModel = (IMvxViewModel <TParameter, TResult>) await NavigateRoute(path);

            var tcs = new TaskCompletionSource <TResult>();

            viewModel.SetClose(tcs);

            await viewModel.Initialize(param);

            OnAfterNavigate(this, args);

            try
            {
                return(await tcs.Task);
            }
            catch
            {
                return(default(TResult));
            }
        }
示例#10
0
        public void Navigate(ApplicationView sourcePage)
        {
            NavigateEventArgs args = new NavigateEventArgs();

            args.Page = sourcePage;
            OnNavigate(args);
        }
    // Raise the event when navigating to another table.
    private void Grid_Navigate(object sender, NavigateEventArgs e)
    {
        // String variable used to show message.
        string myString = "Navigate event raised, moved to another table";

        // Show the message when navigating to another table.
        MessageBox.Show(myString, "Table navigation information");
    }
        public async Task Navigate <TViewModel>() where TViewModel : IMvxViewModel
        {
            var args = new NavigateEventArgs(typeof(TViewModel));

            OnBeforeNavigate(this, args);
            _viewDispatcher.ShowViewModel(new MvxViewModelRequest <TViewModel>());
            OnAfterNavigate(this, args);
        }
示例#13
0
        protected virtual void OnNavigate(NavigateEventArgs e)
        {
            EventHandler <NavigateEventArgs> handler = NavigateEvent;

            if (handler != null)
            {
                handler(this, e);
            }
        }
示例#14
0
        public async Task Navigate(string path)
        {
            var args = new NavigateEventArgs(path);

            OnBeforeNavigate(this, args);

            await NavigateRoute(path);

            OnAfterNavigate(this, args);
        }
        public async Task <bool> Close(IMvxViewModel viewModel)
        {
            var args = new NavigateEventArgs();

            OnBeforeClose(this, args);
            var close = _viewDispatcher.ChangePresentation(new MvxClosePresentationHint(viewModel));

            OnAfterClose(this, args);
            return(close);
        }
示例#16
0
        public virtual Task <bool> Close(IMvxViewModel viewModel)
        {
            var args = new NavigateEventArgs();

            OnBeforeClose(this, args);
            var close = ViewDispatcher.ChangePresentation(new MvxClosePresentationHint(viewModel));

            OnAfterClose(this, args);

            return(Task.FromResult(close));
        }
示例#17
0
        public async Task Navigate <TParameter>(string path, TParameter param) where TParameter : class
        {
            var args = new NavigateEventArgs(path);

            OnBeforeNavigate(this, args);

            var viewModel = (IMvxViewModel <TParameter>) await NavigateRoute(path);

            await viewModel.Initialize(param);

            OnAfterNavigate(this, args);
        }
示例#18
0
//<Snippet1>
    private void Grid_Navigate(object sender, NavigateEventArgs e)
    {
        if (e.Forward)
        {
            DataSet         ds = (DataSet)grid.DataSource;
            CurrencyManager cm =
                (CurrencyManager)BindingContext[ds, "Customers.CustOrders"];
            // Cast the IList to a DataView to set the AllowNew property.
            DataView dv = (DataView)cm.List;
            dv.AllowNew = false;
        }
    }
        public async Task <TResult> Navigate <TResult>(string path)
        {
            var args = new NavigateEventArgs(path);

            OnBeforeNavigate(this, args);

            await NavigateRoute(path);

            OnAfterNavigate(this, args);

            //TODO: Return real result
            return(default(TResult));
        }
示例#20
0
        /// <summary>
        /// Method that gets called whenever a navigation is about to occur in UIP, this is where the custom logic is placed to
        /// ensure that a user is allowed access to a particular view.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UIPManager_NavigateEvent(object sender, NavigateEventArgs e)
        {
            string nextView = UIPConfiguration.Config.GetNextViewSettings(e.State.NavigationGraph, e.State.CurrentView, e.State.NavigateValue).Name;

            //ensure that the user is allowed to access the view they are trying to get to
            if (!UserIsAllowed((string)e.State[Constants.UserId], e.State.NavigateValue, (string)e.State[Constants.AfterLoginNavigationValue]))
            {
                // redirect the user back to the logon page.
                e.State["error"]      = "You must be logged in to access this functionality";
                e.State["afterlogin"] = e.State.NavigateValue;
                e.State.NavigateValue = "login";
            }
        }
        public async Task Navigate <TParameter>(string path, TParameter param)
        {
            var args = new NavigateEventArgs(path);

            OnBeforeNavigate(this, args);

            var cacheKey = Guid.NewGuid().ToString();

            NavigationCache.AddValue <TParameter>(cacheKey, param);

            await NavigateRoute(path);

            OnAfterNavigate(this, args);
        }
        private void BottomNavBar_OnNavigation(object sender, NavigateEventArgs e)
        {
            // stop the page timer
            if (null != _pageMoveTimer)
            {
                _pageMoveTimer.Stop();
            }

            // if we have a flipview
            if (null != this.ContentFlipView)
            {
                // get the sender
                if (sender is NavigationBar navBar)
                {
                    // get the page index
                    int pageIndex = navBar.Root.SelectedIndex;

                    // move the flipview to that index
                    if (pageIndex != this.ContentFlipView.SelectedIndex)
                    {
                        this.ContentFlipView.SelectedIndex = pageIndex;
                    }
                }
            }

            // telemetry - log section nav
            if (NavigationActions.Section == e.NavAction)
            {
                // we've gone to a section, so log it
                switch (e.NavSection.Name)
                {
                case "Experience":
                    TelemetryService.Current?.LogTelemetryEvent(TelemetryEvents.NavExperience);
                    break;

                case "Accessories":
                    TelemetryService.Current?.LogTelemetryEvent(TelemetryEvents.NavAccessories);
                    break;

                case "BestOfMicrosoft":
                    TelemetryService.Current?.LogTelemetryEvent(TelemetryEvents.NavBestOf);
                    break;

                case "Compare":
                    TelemetryService.Current?.LogTelemetryEvent(TelemetryEvents.NavComparison);
                    break;
                }
            }
        }
示例#23
0
        public virtual async Task Navigate <TParameter>(string path, TParameter param, IMvxBundle presentationBundle = null) where TParameter : class
        {
            var request = await NavigationRouteRequest(path, presentationBundle);

            var viewModel = (IMvxViewModel <TParameter>)request.ViewModelInstance;

            var args = new NavigateEventArgs(viewModel);

            OnBeforeNavigate(this, args);

            ViewDispatcher.ShowViewModel(request);
            await viewModel.Initialize(param);

            OnAfterNavigate(this, args);
        }
示例#24
0
        private void sc_Navigate(object sender, NavigateEventArgs e)
        {
            int navFrom = -1;

            for (int i = 0; i < subctrls.Length; i++)
            {
                if (ReferenceEquals(sender, subctrls[i]))
                {
                    navFrom = i;
                    break;
                }
            }

            SelectNextSubControl(navFrom, e.Forward);
        }
        public async Task <TResult> Navigate <TParameter, TResult>(string path, TParameter param)
        {
            var args = new NavigateEventArgs(path);

            OnBeforeNavigate(this, args);

            var cacheKey = Guid.NewGuid().ToString();

            NavigationCache.AddValue <TParameter>(cacheKey, param);

            await NavigateRoute(path);

            OnAfterNavigate(this, args);

            //TODO: Return real result
            return(default(TResult));
        }
示例#26
0
        public virtual async Task Navigate <TParameter>(IMvxViewModel <TParameter> viewModel, TParameter param, IMvxBundle presentationBundle = null) where TParameter : class
        {
            RunViewModelLifecycle(viewModel);
            var request = new MvxViewModelInstanceRequest(viewModel)
            {
                PresentationValues = presentationBundle?.SafeGetData()
            };

            var args = new NavigateEventArgs(viewModel);

            OnBeforeNavigate(this, args);

            ViewDispatcher.ShowViewModel(request);
            await viewModel.Initialize(param);

            OnAfterNavigate(this, args);
        }
示例#27
0
        public virtual async Task Navigate <TViewModel>(IMvxBundle presentationBundle = null) where TViewModel : IMvxViewModel
        {
            var viewModel = LoadViewModel <TViewModel>();
            var request   = new MvxViewModelInstanceRequest(viewModel)
            {
                PresentationValues = presentationBundle?.SafeGetData()
            };

            var args = new NavigateEventArgs(viewModel);

            OnBeforeNavigate(this, args);

            ViewDispatcher.ShowViewModel(request);
            await viewModel.Initialize();

            OnAfterNavigate(this, args);
        }
示例#28
0
        public async Task Navigate <TViewModel, TParameter>(TParameter param)
            where TViewModel : IMvxViewModel <TParameter>
            where TParameter : class
        {
            var args = new NavigateEventArgs(typeof(TViewModel));

            OnBeforeNavigate(this, args);

            var viewModel = (IMvxViewModel <TParameter>)Mvx.IocConstruct <TViewModel>();

            var request = new MvxViewModelInstanceRequest(viewModel);

            _viewDispatcher.ShowViewModel(request);
            await viewModel.Initialize(param);

            OnAfterNavigate(this, args);
        }
        public virtual async Task <TResult> Navigate <TParameter, TResult> (MvxViewModelRequest request, IMvxViewModel viewModel, TParameter param, IMvxBundle presentationBundle = null, CancellationToken cancellationToken = default(CancellationToken)) where TParameter : class where TResult : class
        {
            var args = new NavigateEventArgs(viewModel);

            OnBeforeNavigate(this, args);

            var tcs = new TaskCompletionSource <TResult>();

            if (viewModel is IMvxViewModel <TParameter, TResult> vmParamResult)
            {
                vmParamResult.SetClose(tcs, cancellationToken);
                await vmParamResult.Initialize(param);
            }
            else if (viewModel is IMvxViewModelResult <TResult> vmResult)
            {
                vmResult.SetClose(tcs, cancellationToken);
            }
            else if (viewModel is IMvxViewModel <TParameter> vmParam)
            {
                await vmParam.Initialize(param);
            }

            await viewModel.Initialize();

            RunViewModelLifecycle(viewModel, new MvxBundle(request.ParameterValues));

            ViewDispatcher.ShowViewModel(request);
            OnAfterNavigate(this, args);

            if (viewModel is IMvxViewModel <TParameter, TResult> || viewModel is IMvxViewModelResult <TResult> )
            {
                try
                {
                    return(await tcs.Task);
                }
                catch (Exception e)
                {
                    return(default(TResult));
                }
            }
            else
            {
                return(default(TResult));
            }
        }
示例#30
0
        private void NavigationService_NavigateEvent(object sender, NavigateEventArgs e)
        {
            Frame rootFrame = Window.Current.Content as Frame;

            switch (e.Page)
            {
            case ApplicationPage.DetailsPage:
                rootFrame.Navigate(_serviceProvider.GetService <DetailsPage>().GetType());
                break;

            case ApplicationPage.MainPage:
                rootFrame.Navigate(_serviceProvider.GetService <MainPage>().GetType());
                break;

            default:
                break;
            }
        }
示例#31
0
 public virtual void NavigateComplete2(object pDisp, ref object uRL) 
 {
     NavigateEventArgs navigatecomplete2Event = new NavigateEventArgs(pDisp, uRL);
     this.parent.RaiseOnNavigateComplete2(this.parent, navigatecomplete2Event);
     uRL = navigatecomplete2Event.Url;
 }
 protected void CrystalReportViewer1_Navigate(object source, NavigateEventArgs e)
 {
 }
示例#33
0
 private void Cview_Navigate(object source, NavigateEventArgs e)
 {
     ConfigureCrystalReports(DTName, FName, RptDocument, PFields);
 }
示例#34
0
 public virtual void DocumentComplete(object pDisp, ref object uRL) 
 {
     NavigateEventArgs documentcompleteEvent = new NavigateEventArgs(pDisp, uRL);
     this.parent.RaiseOnDocumentComplete(this.parent, documentcompleteEvent);
     uRL = documentcompleteEvent.Url;
 }
示例#35
0
 internal void RaiseOnDocumentComplete(object sender, NavigateEventArgs e) 
 {
     if ((this.DocumentComplete != null)) 
     {
         this.DocumentComplete(sender, e);
     }
 }
示例#36
0
 internal void RaiseOnNavigateComplete2(object sender, NavigateEventArgs e) 
 {
     if ((this.NavigateComplete != null)) 
     {
         this.NavigateComplete(sender, e);
     }
 }
示例#37
0
 private void item_Navigate(object sender, NavigateEventArgs e)
 {
     _directory = e.Path;
     UpdateContent();
     Invalidate();
 }