Group headings working for navigation menu

This commit is contained in:
watsonb8
2019-05-18 18:18:28 -04:00
parent 9dcd411090
commit ae6bd68707
6 changed files with 61 additions and 5 deletions

View File

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Aurora.Frontend.Views.Components.NavigationMenu;
using Xamarin.Forms;
namespace Aurora.Frontend.Components.NavigationMenu
@ -38,7 +37,34 @@ namespace Aurora.Frontend.Components.NavigationMenu
private static void OnItemsChanged(BindableObject bindable, object oldValue, object newValue)
{
var control = (NavigationMenu)bindable;
control.MenuItemsListView.ItemsSource = (ObservableCollection<NavigationItem>)newValue;
ObservableCollection<NavigationItem> items = (ObservableCollection<NavigationItem>)newValue;
Dictionary<string, NavigationGroupItem> groupDictioanry = new Dictionary<string, NavigationGroupItem>();
//Populate dictionary where group heading is the key
foreach(NavigationItem item in items)
{
if(groupDictioanry.ContainsKey(item.Group))
{
groupDictioanry.TryGetValue(item.Group, out var groupItem);
groupItem.Items.Add(item);
}
else
{
NavigationGroupItem groupItem = new NavigationGroupItem(item.Group);
groupItem.Add(item);
groupDictioanry.Add(item.Group, groupItem);
}
}
ObservableCollection<NavigationGroupItem> groups = new ObservableCollection<NavigationGroupItem>();
foreach(string groupHeading in groupDictioanry.Keys)
{
groupDictioanry.TryGetValue(groupHeading, out var groupItem);
groups.Add(groupItem);
}
control.MenuItemsListView.ItemsSource = groups;
}
}