Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        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));
            }
        }
Exemplo n.º 3
0
 public override nint GetItemsCount(UICollectionView collectionView, nint section)
 {
     return(GroupedSource?.ElementAtOrDefault((int)section)?.Count() ?? Items.Count());
 }
Exemplo n.º 4
0
 public override nint NumberOfSections(UICollectionView collectionView)
 {
     return(GroupedSource?.Count() == 0 ? 1 : GroupedSource?.Count() ?? 1);
 }
Exemplo n.º 5
0
 protected CoreViewBase(CoreDispatcher dispatcher)
 {
     Dispatcher   = dispatcher;
     Oplock       = new object();
     GroupedItems = new GroupedSource(new CharacterGroupingIndexer(), new AlphabetAscendComparer(), new AlphabetAscendComparer());
 }