/// <summary> /// Class constructor for new-style navigation params. /// </summary> /// <param name="args">Navigation event args.</param> public LibraryViewModel(GroupedViewNavigationArgs args) : base(Window.Current.Dispatcher) { RegisterEventHandlers(); _isGrouped = true; _viewType = args.PageType; // Fallback or default title DesktopTitleViewConfiguration.SetTitleBarText( CommonSharedStrings.LibraryTitle); // Always set last used comparer. if (_viewType == CommonItemType.Song) { var groupState = new PageGroupingStateManager <CommonGroupedListView>(_viewType); var comparer = groupState.GetLastUsedPair(); GroupedItems = new GroupedSource(comparer.Indexer, comparer.GroupComparer, comparer.ItemComparer); } else if (_viewType == CommonItemType.Album || _viewType == CommonItemType.Artist) { var groupState = new PageGroupingStateManager <CommonGroupedGridView>(_viewType); var comparer = groupState.GetLastUsedPair(); GroupedItems = new GroupedSource(comparer.Indexer, comparer.GroupComparer, comparer.ItemComparer); } else { GroupedItems = new GroupedSource(args.EntityIndexer, args.GroupComparer, args.ItemComparer); } }
public virtual object GetItem(UICollectionView collectionView, NSIndexPath indexPath) { var section = GroupedSource?.ElementAtOrDefault(indexPath.Section); if (section != null) { return(section.Cast <object>().ElementAtOrDefault(indexPath.Row)); } else { return(Items.ElementAtOrDefault(indexPath.Row)); } }
public override nint GetItemsCount(UICollectionView collectionView, nint section) { return(GroupedSource?.ElementAtOrDefault((int)section)?.Count() ?? Items.Count()); }
public override nint NumberOfSections(UICollectionView collectionView) { return(GroupedSource?.Count() == 0 ? 1 : GroupedSource?.Count() ?? 1); }
protected CoreViewBase(CoreDispatcher dispatcher) { Dispatcher = dispatcher; Oplock = new object(); GroupedItems = new GroupedSource(new CharacterGroupingIndexer(), new AlphabetAscendComparer(), new AlphabetAscendComparer()); }