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(); } }
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());
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); }
private IObservable <Unit> ExecuteNavigate(CoffeeCellViewModel viewModel) => _viewStackService.PushPage <CoffeeDetailViewModel>(new NavigationParameter { { "Id", viewModel.Id } });