コード例 #1
0
        private IObservable <Unit> ExecuteNavigate(CollectionOptionViewModel arg)
        {
            // HACK: [rlittlesii: July 04, 2020] Make this not suck, this is a great case for routes.
            switch (arg.Option)
            {
            case CollectionOption.DetailNavigation:
                return(_viewStackService.PushPage <SearchCollectionViewModel>());

            case CollectionOption.Search:
                return(_viewStackService.PushPage <SearchCollectionViewModel>());

            case CollectionOption.InfiniteScroll:
                return(_viewStackService.PushPage <InfiniteCollectionViewModel>());

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
コード例 #2
0
 private IObservable <Unit> ExecuteNavigate(DrinkViewModel viewModel) =>
 Observable
 .Return(Unit.Default)
 .ObserveOn(RxApp.MainThreadScheduler)
 .Do(_ =>
     _viewStackService
     .PushPage <CoffeeDetailViewModel>(new NavigationParameter {
     { "Id", viewModel.Id }
 })
     .ObserveOn(RxApp.MainThreadScheduler)
     .Subscribe());
コード例 #3
0
        public SpeakerListViewModel(IParameterViewStackService viewStackService, ISpeakerService speakerService)
        {
            _viewStackService = viewStackService;
            _speakerService   = speakerService;

            Refresh    = ReactiveCommand.CreateFromTask(ExecuteRefresh);
            ItemTapped = ReactiveCommand.Create <SpeakerItemViewModel, Unit>(item =>
            {
                var profile = new SpeakerDetailViewModel(_viewStackService, new SpeakerServiceMock());
                _viewStackService.PushPage(profile, new NavigationParameter {
                    { "Id", item.SpeakerId.ToString() }
                }).Subscribe();
                return(Unit.Default);
            });

            _isRefreshing =
                this.WhenAnyObservable(x => x.Refresh.IsExecuting)
                .ToProperty(this, x => x.IsRefreshing)
                .DisposeWith(Subscriptions);
        }
コード例 #4
0
 private IObservable <Unit> ExecuteNavigate(CoffeeCellViewModel viewModel) =>
 _viewStackService.PushPage <CoffeeDetailViewModel>(new NavigationParameter {
     { "Id", viewModel.Id }
 });