Example #1
0
 public IPageDefinitionRegistry RegisterPageDefinition(PageDefinition pageDefinition)
 {
     if (pageDefinition == null)
     {
         throw new ArgumentNullException("pageDefinition");
     }
     _pageDefinitions[pageDefinition.ViewName] = pageDefinition;
     return(this);
 }
Example #2
0
 private Task NotifyNavigating(CancellationToken ct, PageDefinition pageDefinition, INavigationRequest request)
 {
     return(Observable.FromEventPattern <NavigatingCancelEventHandler, NavigatingCancelEventArgs>(h => _frame.Navigating += h, h => _frame.Navigating -= h)
            .SubscribeOn(_dispatcherScheduler)
            .Where(args => args.EventArgs.Uri == pageDefinition.Uri && args.EventArgs.NavigationMode == NavigationMode.New)
            .Do(_ => _navigatingSubject.OnNext(request))
            .Take(1)
            .SelectUnit()
            .ToTask(ct));
 }
Example #3
0
        private IObservable <FrameworkElement> SetPageDataContext(PageDefinition pageDefinition, IViewModel viewModel)
        {
            var sw = new System.Diagnostics.Stopwatch();

            return(Observable.FromEventPattern <NavigatedEventHandler, NavigationEventArgs>(h => _frame.Navigated += h, h => _frame.Navigated -= h)
                   .SubscribeOn(_dispatcherScheduler)
                   .Where(args => args.EventArgs.Uri == pageDefinition.Uri)
                   .Select(args => ((FrameworkElement)args.EventArgs.Content))
                   .Do(_ => sw.Start())
                   .Do(page => page.DataContext = viewModel)
                   .Do(_ => System.Diagnostics.Debug.WriteLine(sw.ElapsedMilliseconds))
                   .Take(1));
        }
Example #4
0
		public IPageDefinitionRegistry RegisterPageDefinition(PageDefinition pageDefinition)
		{
			if (pageDefinition == null) throw new ArgumentNullException("pageDefinition");
			_pageDefinitions[pageDefinition.ViewName] = pageDefinition;
			return this;
		}
Example #5
0
		private IObservable<FrameworkElement> SetPageDataContext(PageDefinition pageDefinition, IViewModel viewModel)
		{
			var sw = new System.Diagnostics.Stopwatch();
			return Observable.FromEventPattern<NavigatedEventHandler, NavigationEventArgs>(h => _frame.Navigated += h, h => _frame.Navigated -= h)
							 .SubscribeOn(_dispatcherScheduler)
							 .Where(args => args.EventArgs.Uri == pageDefinition.Uri)
							 .Select(args => ((FrameworkElement)args.EventArgs.Content))
							 .Do(_ => sw.Start())
							 .Do(page => page.DataContext = viewModel)
							 .Do(_ => System.Diagnostics.Debug.WriteLine(sw.ElapsedMilliseconds))
							 .Take(1);
		}
Example #6
0
		private Task NotifyNavigating(CancellationToken ct, PageDefinition pageDefinition, INavigationRequest request)
		{
			return Observable.FromEventPattern<NavigatingCancelEventHandler, NavigatingCancelEventArgs>(h => _frame.Navigating += h, h => _frame.Navigating -= h)
							 .SubscribeOn(_dispatcherScheduler)
							 .Where(args => args.EventArgs.Uri == pageDefinition.Uri && args.EventArgs.NavigationMode == NavigationMode.New)
							 .Do(_ => _navigatingSubject.OnNext(request))
							 .Take(1)
							 .SelectUnit()
							 .ToTask(ct);
		}
Example #7
0
		private IObservable<FrameworkElement> SetPageDataContext(PageDefinition pageDefinition, IViewModel viewModel)
		{
			return Observable.FromEventPattern<NavigatedEventHandler, NavigationEventArgs>(h => _frame.Navigated += h, h => _frame.Navigated -= h, _dispatcherScheduler)
							 .Where(args => args.EventArgs.SourcePageType == pageDefinition.PageType)
							 .Select(args => ((FrameworkElement)args.EventArgs.Content))
							 .Do(page => page.DataContext = viewModel)
							 .Take(1);
		}