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))
Exemplo n.º 2
0
 public SearchItemViewModel(
     SearchPageViewModel owner,
     NavigationMetaData metaData,
     SearchCategory category)
 {
     _metaData   = metaData;
     Category    = category;
     OpenCommand = ReactiveCommand.CreateFromTask(async() => await OnOpenAsync(owner, metaData));
 }
Exemplo n.º 3
0
    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))
Exemplo n.º 4
0
        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.");
        }
Exemplo n.º 5
0
        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);
            });
        }
Exemplo n.º 6
0
        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;
            });
Exemplo n.º 7
0
        private async Task OnOpenAsync(SearchPageViewModel owner, NavigationMetaData metaData)
        {
            owner.IsBusy = true;
            var view = await NavigationManager.MaterialiseViewModelAsync(metaData);

            if (view is { })