private async Task OnOpenAsync(SearchPageViewModel owner, NavigationMetaData metaData) { owner.IsBusy = true; var view = await NavigationManager.MaterialiseViewModelAsync(metaData); if (view is NavBarItemViewModel navBarItem && navBarItem.OpenCommand.CanExecute(default))
public SearchItemViewModel( SearchPageViewModel owner, NavigationMetaData metaData, SearchCategory category) { _metaData = metaData; Category = category; OpenCommand = ReactiveCommand.CreateFromTask(async() => await OnOpenAsync(owner, metaData)); }
private static Func <Task> CreateOnActivateFunction(NavigationMetaData navigationMetaData) { return(async() => { var vm = await NavigationManager.MaterialiseViewModelAsync(navigationMetaData); if (vm is null) { return; } if (vm is NavBarItemViewModel item && item.OpenCommand.CanExecute(default))
private void RegisterSearchEntry(NavigationMetaData metaData) { if (_categories.TryGetValue(metaData.Category, out var searchCategory)) { var result = new SearchItemViewModel(this, metaData, searchCategory); _categorySources[searchCategory].Add(result); return; } throw new Exception("Category doesn't exist."); }
public SearchItemViewModel( NavigationMetaData metaData, SearchCategory category) { _metaData = metaData; Category = category; OpenCommand = ReactiveCommand.CreateFromTask( async() => { var view = await NavigationManager.MaterialiseViewModel(metaData); Navigate(view.DefaultTarget).To(view); }); }
public SearchItemViewModel( SearchPageViewModel owner, NavigationMetaData metaData, SearchCategory category) { _metaData = metaData; Category = category; OpenCommand = ReactiveCommand.CreateFromTask( async() => { owner.IsBusy = true; var view = await NavigationManager.MaterialiseViewModel(metaData); if (view is { }) { Navigate(view.DefaultTarget).To(view); } owner.IsBusy = false; });
private async Task OnOpenAsync(SearchPageViewModel owner, NavigationMetaData metaData) { owner.IsBusy = true; var view = await NavigationManager.MaterialiseViewModelAsync(metaData); if (view is { })