Ejemplo n.º 1
0
        public PhoneNavigationService(
            PhoneApplicationFrame frame,
            IPageDefinitionRegistry pageDefinitions,
            IViewModelFactory viewModelFactory,
            IScheduler dispatcherScheduler)
        {
            if (frame == null)
            {
                throw new ArgumentNullException("frame");
            }
            if (pageDefinitions == null)
            {
                throw new ArgumentNullException("pageDefinitions");
            }
            if (viewModelFactory == null)
            {
                throw new ArgumentNullException("viewModelFactory");
            }
            if (dispatcherScheduler == null)
            {
                throw new ArgumentNullException("dispatcherScheduler");
            }
            _frame               = frame;
            _pageDefinitions     = pageDefinitions;
            _viewModelFactory    = viewModelFactory;
            _dispatcherScheduler = dispatcherScheduler;
            _navigatingSubject   = new Subject <INavigationRequest>();
            _navigatedSubject    = new Subject <INavigationRequest>();
            _semaphore           = new SemaphoreSlim(1);
            History              = _history = new NavigationHistory(RemoveHistoryEntry, ClearHistory);

            _frame.Navigated    += _frame_Navigated;
            _frame.BackKeyPress += _frame_BackKeyPress;
        }
Ejemplo n.º 2
0
		public NavigationService(
			Frame frame,
			IPageDefinitionRegistry pageDefinitions,
			IViewModelFactory viewModelFactory,
			IScheduler dispatcherScheduler,
			IScheduler backgroundScheduler)
		{
			if (frame == null) throw new ArgumentNullException("frame");
			if (pageDefinitions == null) throw new ArgumentNullException("pageDefinitions");
			if (viewModelFactory == null) throw new ArgumentNullException("viewModelFactory");
			if (dispatcherScheduler == null) throw new ArgumentNullException("dispatcherScheduler");
			if (backgroundScheduler == null) throw new ArgumentNullException("backgroundScheduler");
			_frame = frame;
			_pageDefinitions = pageDefinitions;
			_viewModelFactory = viewModelFactory;
			_dispatcherScheduler = dispatcherScheduler;
			_backgroundScheduler = backgroundScheduler;
			_navigatingSubject = new Subject<INavigationRequest>();
			_navigatedSubject = new Subject<INavigationRequest>();
			_semaphore = new SemaphoreSlim(1);
			History = _history = new NavigationHistory(RemoveHistoryEntry, ClearHistory);

			_frame.Navigated += _frame_Navigated;
			//_frame.BackKeyPress += _frame_BackKeyPress;
		}
Ejemplo n.º 3
0
        private IPageDefinitionRegistry RegisterPages(IPageDefinitionRegistry registry)
        {
            return(registry.RegisterViewModel <MainViewModel, MainPage>(ApplicationPages.Main)
                   .RegisterViewModel <SecondViewModel, SecondPage>(ApplicationPages.Second)
                   .RegisterViewModel <ThirdViewModel, ThirdPage>(ApplicationPages.Third)
                   .RegisterViewModel <TestCachePageViewModel, TestCachePage>(ApplicationPages.TestCache)
#if WINDOWS_APP
                   .RegisterViewModel <TestSearchViewModel, TestSearch>(ApplicationPages.TestSearch)
#endif
                   );
        }
Ejemplo n.º 4
0
 public static IPageDefinitionRegistry RegisterViewModel <TViewModel, TView>(this IPageDefinitionRegistry viewViewModelBuilder, string name)
     where TViewModel : IViewModel
 {
     return(viewViewModelBuilder.RegisterPageDefinition(
                new PageDefinition(
                    name,
                    typeof(TViewModel),
                    typeof(TView),
                    null
                    )
                ));
 }
		public CreateCommandsAndOvvmViewModelFactory(IViewModelFactory innerViewModelFactory, IPageDefinitionRegistry pageDefinitionRegistry)
		{
			if (innerViewModelFactory == null) throw new ArgumentNullException("innerViewModelFactory");
			if (pageDefinitionRegistry == null) throw new ArgumentNullException("pageDefinitionRegistry");
			_innerViewModelFactory = innerViewModelFactory;
			_pageDefinitionRegistry = pageDefinitionRegistry;

			foreach (var pageDefinition in _pageDefinitionRegistry.PageDefinitions)
			{
				FindGetters(pageDefinition.ViewModelType);
			}
		}
Ejemplo n.º 6
0
        public CreateCommandsAndOvvmViewModelFactory(IViewModelFactory innerViewModelFactory, IPageDefinitionRegistry pageDefinitionRegistry)
        {
            if (innerViewModelFactory == null)
            {
                throw new ArgumentNullException("innerViewModelFactory");
            }
            if (pageDefinitionRegistry == null)
            {
                throw new ArgumentNullException("pageDefinitionRegistry");
            }
            _innerViewModelFactory  = innerViewModelFactory;
            _pageDefinitionRegistry = pageDefinitionRegistry;

            foreach (var pageDefinition in _pageDefinitionRegistry.PageDefinitions)
            {
                FindGetters(pageDefinition.ViewModelType);
            }
        }
Ejemplo n.º 7
0
 private IPageDefinitionRegistry RegisterPages(IPageDefinitionRegistry registry)
 {
     return(registry.RegisterViewModel <MainViewModel, MainPage>(ApplicationPages.Main, new Uri("/TestWindowsPhone;component/MainPage.xaml", UriKind.Relative))
            .RegisterViewModel <SecondViewModel, SecondPage>(ApplicationPages.Second, new Uri("/TestWindowsPhone;component/SecondPage.xaml", UriKind.Relative))
            .RegisterViewModel <ThirdViewModel, ThridPage>(ApplicationPages.Third, new Uri("/TestWindowsPhone;component/ThridPage.xaml", UriKind.Relative)));
 }
Ejemplo n.º 8
0
		private IPageDefinitionRegistry RegisterPages(IPageDefinitionRegistry registry)
		{
			return registry.RegisterViewModel<MainViewModel, MainPage>(ApplicationPages.Main)
			               .RegisterViewModel<SecondViewModel, SecondPage>(ApplicationPages.Second)
			               .RegisterViewModel<ThirdViewModel, ThirdPage>(ApplicationPages.Third)
			               .RegisterViewModel<TestCachePageViewModel, TestCachePage>(ApplicationPages.TestCache)
#if WINDOWS_APP
			               .RegisterViewModel<TestSearchViewModel, TestSearch>(ApplicationPages.TestSearch)
#endif
				;
		}
Ejemplo n.º 9
0
		private IPageDefinitionRegistry RegisterPages(IPageDefinitionRegistry registry)
		{
			return registry.RegisterViewModel<MainViewModel, MainPage>(ApplicationPages.Main, new Uri("/TestWindowsPhone;component/MainPage.xaml", UriKind.Relative))
						   .RegisterViewModel<SecondViewModel, SecondPage>(ApplicationPages.Second, new Uri("/TestWindowsPhone;component/SecondPage.xaml", UriKind.Relative))
						   .RegisterViewModel<ThirdViewModel, ThridPage>(ApplicationPages.Third, new Uri("/TestWindowsPhone;component/ThridPage.xaml", UriKind.Relative));
		}