public IPageDefinitionRegistry RegisterPageDefinition(PageDefinition pageDefinition) { if (pageDefinition == null) { throw new ArgumentNullException("pageDefinition"); } _pageDefinitions[pageDefinition.ViewName] = pageDefinition; return(this); }
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)); }
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)); }
public IPageDefinitionRegistry RegisterPageDefinition(PageDefinition pageDefinition) { if (pageDefinition == null) throw new ArgumentNullException("pageDefinition"); _pageDefinitions[pageDefinition.ViewName] = pageDefinition; return this; }
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); }
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); }
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); }