diff --git a/src/Calculator/Views/MainPage.xaml b/src/Calculator/Views/MainPage.xaml index 6136f42f..863d76ce 100644 --- a/src/Calculator/Views/MainPage.xaml +++ b/src/Calculator/Views/MainPage.xaml @@ -109,6 +109,7 @@ PaneOpened="OnNavPaneOpened" PaneOpening="OnNavPaneOpening" SelectionChanged="OnNavSelectionChanged" + ItemInvoked="OnNavItemInvoked" TabIndex="1" UseSystemFocusVisuals="True"> diff --git a/src/Calculator/Views/MainPage.xaml.cpp b/src/Calculator/Views/MainPage.xaml.cpp index 14c406a0..21d28a52 100644 --- a/src/Calculator/Views/MainPage.xaml.cpp +++ b/src/Calculator/Views/MainPage.xaml.cpp @@ -601,3 +601,17 @@ void MainPage::AnnounceCategoryName() NarratorAnnouncement^ announcement = CalculatorAnnouncement::GetCategoryNameChangedAnnouncement(categoryName); NarratorNotifier->Announce(announcement); } + +void MainPage::OnNavItemInvoked(_In_ Microsoft::UI::Xaml::Controls::NavigationView^ sender, _In_ Microsoft::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs^ e) +{ + auto item = dynamic_cast(e->InvokedItemContainer); + if (item != nullptr) + { + auto selectedItem = static_cast(item->DataContext); + + if (selectedItem->Mode == Model->Mode) + { + NavView->IsPaneOpen = false; + } + } +} diff --git a/src/Calculator/Views/MainPage.xaml.h b/src/Calculator/Views/MainPage.xaml.h index 96a5ff76..ba26160d 100644 --- a/src/Calculator/Views/MainPage.xaml.h +++ b/src/Calculator/Views/MainPage.xaml.h @@ -52,6 +52,8 @@ namespace CalculatorApp void OnNavPaneOpened(_In_ Microsoft::UI::Xaml::Controls::NavigationView^ sender, _In_ Platform::Object^ args); void OnNavPaneClosed(_In_ Microsoft::UI::Xaml::Controls::NavigationView^ sender, _In_ Platform::Object^ args); void OnNavSelectionChanged(_In_ Platform::Object^ sender, _In_ Microsoft::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs^ e); + void OnNavItemInvoked(_In_ Microsoft::UI::Xaml::Controls::NavigationView^ sender, _In_ Microsoft::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs^ e); + void OnAboutButtonClick(_In_ Platform::Object^ sender, _In_ Windows::UI::Xaml::Controls::ItemClickEventArgs^ e); void OnAboutFlyoutOpened(_In_ Platform::Object^ sender, _In_ Platform::Object^ e);