@@ -14,25 +14,18 @@ public static class NavigationViewHelper
1414
1515 foreach ( var navData in categoryData )
1616 {
17- // Make subcategories
18- var subcategoryData = GenerateSubcategoryNavItems ( navData . SampleMetadata ?? Enumerable . Empty < ToolkitFrontMatter > ( ) ) ;
17+ var samplesBySubcategory = navData . SampleMetadata ! . GroupBy ( x => x . Subcategory )
18+ . OrderBy ( g => g . Key . ToString ( ) ) ;
1919
20- foreach ( var subcategoryItemData in subcategoryData )
20+ foreach ( var subcategoryGroup in samplesBySubcategory )
2121 {
22- // Make samples
23- var sampleNavigationItems = GenerateSampleNavItems ( subcategoryItemData . SampleMetadata ?? Enumerable . Empty < ToolkitFrontMatter > ( ) ) ;
24- subcategoryItemData . NavItem . MenuItems . Add ( new MUXC . NavigationViewItemSeparator ( ) ) ;
25- foreach ( var item in sampleNavigationItems )
22+ navData . NavItem . MenuItems . Add ( new MUXC . NavigationViewItemHeader ( ) { Content = subcategoryGroup . Key . ToString ( ) } ) ;
23+ foreach ( var sampleNavItem in GenerateSampleNavItems ( subcategoryGroup ) )
2624 {
27- // Add sample to subcategory
28- subcategoryItemData . NavItem . MenuItems . Add ( item ) ;
25+ navData . NavItem . MenuItems . Add ( sampleNavItem ) ;
2926 }
30-
31- // Add subcategory to category
32- navData . NavItem . MenuItems . Add ( subcategoryItemData . NavItem ) ;
3327 }
3428
35- // Return category
3629 yield return navData . NavItem ;
3730 }
3831 }
@@ -61,23 +54,6 @@ public static class NavigationViewHelper
6154 }
6255 }
6356
64- private static IEnumerable < GroupNavigationItemData > GenerateSubcategoryNavItems ( IEnumerable < ToolkitFrontMatter > sampleMetadata )
65- {
66- var samplesBySubcategory = sampleMetadata . GroupBy ( x => x . Subcategory )
67- . OrderBy ( g => g . Key . ToString ( ) ) ;
68-
69- foreach ( var subcategoryGroup in samplesBySubcategory )
70- {
71- yield return new GroupNavigationItemData ( new MUXC . NavigationViewItem
72- {
73- Content = subcategoryGroup . Key ,
74- SelectsOnInvoked = false ,
75- IsExpanded = false ,
76- Style = ( Style ) App . Current . Resources [ "SubcategoryNavigationViewItemStyle" ] ,
77- } , subcategoryGroup . ToArray ( ) ) ;
78- }
79- }
80-
8157 private static IEnumerable < GroupNavigationItemData > GenerateCategoryNavItems ( IEnumerable < ToolkitFrontMatter > sampleMetadata )
8258 {
8359 var samplesByCategory = sampleMetadata . GroupBy ( x => x . Category )
@@ -97,5 +73,4 @@ private static IEnumerable<GroupNavigationItemData> GenerateCategoryNavItems(IEn
9773 /// <param name="NavItem">A navigation item to contain items in this group.</param>
9874 /// <param name="SampleMetadata">The samples that belong under <see cref="NavItem"/>.</param>
9975 private record GroupNavigationItemData ( MUXC . NavigationViewItem NavItem , IEnumerable < ToolkitFrontMatter > SampleMetadata ) ;
100-
10176}
0 commit comments