protected override int GetLevelCore()
        {
            NavigationViewItemBase nvib = Owner as NavigationViewItemBase;

            if (nvib != null)
            {
                var nvibImpl = nvib;
                if (nvibImpl.IsTopLevelItem)
                {
                    return(1);
                }
                else
                {
                    var navView = GetParentNavigationView();
                    if (navView != null)
                    {
                        var indexPath = navView.GetIndexPathForContainer(nvib);
                        if (indexPath != null)
                        {
                            // first index in path stands for main or footer menu
                            return(indexPath.GetSize() - 1);
                        }
                    }
                }
            }

            return(0);
        }
        public MenuViewModel()
        {
            NavigationItems = new ObservableCollection <NavigationViewItemBase>();

            GetNagivationItems();

            SelectedItem = NavigationItems.First(x => x.GetType() == typeof(NavigationViewItem));
        }
        private void NavView_ItemInvoked(NavigationView _, NavigationViewItemInvokedEventArgs args)
        {
            var tag = (RouteType)args.InvokedItemContainer.Tag;
            var pre = Selected;

            Selected          = ApplicationRouter.GetRouteTag(tag);
            SelectedContainer = args.InvokedItemContainer;
            ContentFrame.NavigateToRoute(tag, TransitionHelper.DecideSlideAnimation(pre, Selected));
        }
        private NavigationViewRepeaterPosition GetNavigationViewRepeaterPosition()
        {
            NavigationViewItemBase navigationViewItem = Owner as NavigationViewItemBase;

            if (navigationViewItem != null)
            {
                return(navigationViewItem.Position);
            }
            return(NavigationViewRepeaterPosition.LeftNav);
        }
        NavigationView GetParentNavigationView()
        {
            NavigationView navigationView = null;

            NavigationViewItemBase navigationViewItem = Owner as NavigationViewItemBase;

            if (navigationViewItem != null)
            {
                navigationView = navigationViewItem.GetNavigationView();
            }
            return(navigationView);
        }
Example #6
0
 private static void ChangeMenuSelection()
 {
     if ((Windows.UI.Xaml.Window.Current.Content as Frame).Content is MenuPage mp)
     {
         MenuViewModel          VM  = mp.DataContext as MenuViewModel;
         Type                   t   = NavigationFrame.Content.GetType();
         NavigationViewItemBase tmp = (VM.NavigationItems as IEnumerable <NavigationViewItemBase>).FirstOrDefault(x => (x.Tag as Type) == t);
         if (tmp != null)
         {
             VM.SelectedItem = tmp;
         }
     }
 }
Example #7
0
        // Delete menu item when a category is deleted
        public void DeleteMenuItem(int id)
        {
            NavigationViewItemBase deletion = null;

            foreach (var item in MenuItems)
            {
                if (item.Name != null && item.Name == id.ToString())
                {
                    deletion = item;
                }
            }
            MenuItems.Remove(deletion);
        }
Example #8
0
        public static void DeleteMenuItem(string name)
        {
            NavigationViewItemBase deletion = null;

            foreach (var item in menu)
            {
                if (item.Content != null && item.Content.ToString() == name)
                {
                    deletion = item;
                }
            }
            menu.Remove(deletion);
        }
 private void NavView_Loaded(object sender, RoutedEventArgs e)
 {
     foreach (var tag in Tags)
     {
         NavView.MenuItems.Add(new NavigationViewItem {
             Content = tag.Text,
             Icon    = new SymbolIcon((Symbol)0xF1AD),
             Tag     = tag.Type
         });
     }
     Selected          = ApplicationRouter.GetRouteTag(Tags[0].Type);
     SelectedContainer = (NavigationViewItemBase)(NavView.SelectedItem = NavView.MenuItems[0]);
 }
 private void NavView_OnItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
 {
     if (args.IsSettingsInvoked)
     {
     }
     else
     {
         string itemTitle = args.InvokedItem as string;
         NavigationViewItemBase navItem =
             (sender.MenuItemsSource as IEnumerable <NavigationViewItemBase>).First(x =>
                                                                                    x.Content as string == itemTitle);
         NavigationService.Navigate(navItem.Tag as Type);
     }
 }
        private ItemsRepeater GetParentItemsRepeater()
        {
            var navview = GetParentNavigationView();

            if (navview != null)
            {
                NavigationViewItemBase navigationViewItem = Owner as NavigationViewItemBase;
                if (navigationViewItem != null)
                {
                    return(navview.GetParentItemsRepeaterForContainer(navigationViewItem));
                }
            }
            return(null);
        }
 public async Task ResetFlavours()
 {
     //Removes each one
     for (int i = NavView.MenuItems.Count - 1; i >= 0; i--)
     {
         NavigationViewItemBase menuitem = (NavigationViewItemBase)NavView.MenuItems[i];
         if (menuitem.Name.Equals("Flavour"))
         {
             NavView.MenuItems.Remove(menuitem);
         }
     }
     //Loads them
     await LoadPinnedFlavours();
 }
Example #13
0
        private void navigationViewMainNavigation_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
        {
            NavigationViewItemBase container = args.SelectedItemContainer;
            NavigationViewItem     selectedItem;

            if (container is NavigationViewItem)
            {
                selectedItem = container as NavigationViewItem;
            }
            else
            {
                return;
            }

            if (selectedItem.Equals(navigationViewItemHome) || selectedItem.Equals(navigationViewItemAboutApplication))
            {
                frameMainContent.Navigate(typeof(PageHome));
            }
            else if (selectedItem.Equals(navigationViewItemPlayer))
            {
                frameMainContent.Navigate(typeof(PagePlayer));
            }
            else if (selectedItem.Equals(navigationViewItemAddTag))
            {
                frameMainContent.Navigate(typeof(PageAddTag));
            }
            else if (selectedItem.Equals(navigationViewItemListTags))
            {
                frameMainContent.Navigate(typeof(PageListTags));
            }
            else if (selectedItem.Equals(navigationViewItemAddSong))
            {
                frameMainContent.Navigate(typeof(PageAddSong));
            }
            else if (selectedItem.Equals(navigationViewItemListSongs))
            {
                frameMainContent.Navigate(typeof(PageListSongs));
            }
        }
        //Loads the pinned flavours and playlists into the list on the left of the screen.

        public async Task LoadPinnedFlavours()
        {
            List <long> inlist = new List <long>();
            bool        showunpinnedflavours = (bool)Windows.Storage.ApplicationData.Current.LocalSettings.Values["ShowUnpinnedFlavours"];

            foreach (NavigationViewItemBase menuitem in NavView.MenuItems)
            {
                if (menuitem.Name.Equals("Flavour"))
                {
                    var tag = (long)menuitem.Tag;
                    inlist.Add(tag);
                }
            }
            var playlists = SongListStorage.PlaylistDict.Values;

            //Loops through the playlists to load the necessary ones.
            foreach (Playlist playlist in playlists)
            {
                if ((playlist.pinned || showunpinnedflavours) && !inlist.Contains(playlist.PlaylistID))
                {
                    await LoadFlavour(playlist);
                }
            }
            for (int i = NavView.MenuItems.Count - 1; i >= 0; i--)
            {
                NavigationViewItemBase menuitem = (NavigationViewItemBase)NavView.MenuItems[i];
                if (menuitem.Name.Equals("Flavour"))
                {
                    var key = (long)menuitem.Tag;
                    if (!SongListStorage.PlaylistDict.ContainsKey(key) || (!SongListStorage.PlaylistDict[key].pinned && !showunpinnedflavours))
                    {
                        NavView.MenuItems.Remove(menuitem);
                        //menuitem.Visibility = Visibility.Collapsed;
                    }
                }
            }


            /*newlist.Add((long)(test as NavigationViewItem).Tag);
             * for (int i = NavView.MenuItems.Count - 1; i >= 0; i--)
             * {
             *  NavigationViewItemBase menuitem = (NavigationViewItemBase)NavView.MenuItems[i];
             *  if (menuitem.Name.Equals("Flavour") && (NavigationViewItem)menuitem != test)
             *  {
             *      NavView.MenuItems.Remove(menuitem);
             *  }
             * }*/
            //var orderedlist = NavView.MenuItems.OrderBy(x => ((Playlist)x).Name); //get rid of
            //NavView.MenuItems.orde
            //artist.Albums.Sort((x, y) => SongListStorage.AlbumDict[y].Year.CompareTo(SongListStorage.AlbumDict[x].Year));

            /*foreach (NavigationViewItemBase menuitem in NavView.MenuItems)
             * {
             *  if (menuitem.Name.Equals("Flavour"))
             *  {
             *      var key = (long)menuitem.Tag;
             *      var tempname = SongListStorage.PlaylistDict[key].Name;
             *      if (!SongListStorage.PlaylistDict.ContainsKey(key) || (!SongListStorage.PlaylistDict[key].pinned && !SongListStorage.ShowUnpinnedFlavours))
             *      {
             *          NavView.MenuItems.Remove(menuitem);
             *          //menuitem.Visibility = Visibility.Collapsed;
             *      }
             *  }
             * }*/
        }
Example #15
0
 public static void SetNavigationType(NavigationViewItemBase dependencyObject, Type value)
 => dependencyObject.SetValue(NavigationTypeProperty, value);
Example #16
0
 public static Type GetNavigationType(NavigationViewItemBase dependencyObject)
 => (Type)dependencyObject.GetValue(NavigationTypeProperty);