protected ComicNavigationItemGridViewModel(
            IMainPageContent parent,
            MainViewModel appViewModel,
            NavigationTag navigationTag,
            ComicCollectionSortSelector initialSort
            ) : base(parent, appViewModel)
        {
            // Note: in the future, we may want to store this to remove the event handler
            switch (navigationTag)
            {
            case NavigationTag.Comics:
                throw new ProgrammerError("Cannot make of navigation item view model for work items");

            case NavigationTag.Playlist:
                this.collections = this.MainViewModel.Playlists;
                this.collections.SetSort(initialSort);
                break;

            default:
                this.collections = this.MainViewModel.SortedComicCollectionsFor(navigationTag, initialSort);
                break;
            }

            this.collections.CollectionsChanged += this.Collections_CollectionsChanged;
        }
        public static ComicNavigationItemGridViewModel ForViewModel(
            IMainPageContent parent,
            MainViewModel mainViewModel,
            NavigationTag navigationTag,
            ComicCollectionSortSelector initialSort,
            ComicItemGridState?savedState = null
            )
        {
            var viewModel = new ComicNavigationItemGridViewModel(parent, mainViewModel, navigationTag, initialSort);

            if (savedState?.LastModified is { } lastModified&& lastModified == mainViewModel.LastModified)
            {
                viewModel.SetComicItems(savedState.Items);
            }
Exemplo n.º 3
0
        public ComicWorkItemGridViewModel(
            IMainPageContent parent,
            MainViewModel mainViewModel,
            ComicView comics,
            ComicItemGridViewModelProperties?properties = null,
            ComicItemGridState?savedState = null
            ) : base(parent, mainViewModel)
        {
            this.Properties = properties ?? new ComicItemGridViewModelProperties();

            this.comics = comics.Sorted(this.SelectedSortSelector);
            this.comics.ComicsChanged += this.Comics_ComicsChanged;

            if (savedState?.LastModified is { } lastModified&& lastModified == mainViewModel.LastModified)
            {
                this.SetComicItems(savedState.Items);
            }