private bool RaiseOptionsItemEvents(object selectedItem)
        {
            if (selectedItem is null)
            {
                return(false);
            }

            if (selectedItem is IHamburgerMenuHeaderItem || selectedItem is IHamburgerMenuSeparatorItem)
            {
                return(false);
            }

            var itemClickEventArgs = new ItemClickEventArgs(OptionsItemClickEvent, this)
            {
                ClickedItem = selectedItem
            };

            this.RaiseEvent(itemClickEventArgs);

            var hamburgerMenuItemInvokedEventArgs = new HamburgerMenuItemInvokedEventArgs(ItemInvokedEvent, this)
            {
                InvokedItem = selectedItem, IsItemOptions = true
            };

            this.RaiseEvent(hamburgerMenuItemInvokedEventArgs);

            return(!itemClickEventArgs.Handled && !hamburgerMenuItemInvokedEventArgs.Handled);
        }
        private void HamburgerMenuControl_ItemInvoked(object sender,
                                                      MahApps.Metro.Controls.HamburgerMenuItemInvokedEventArgs args)
        {
            var menuItem = (args.InvokedItem as HamburgerMenuItem);

            Debug.Assert(menuItem != null);
            Debug.Assert(menuItem.Tag != null);
            var navItemVm = (menuItem.Tag as NavigationItemViewModel);

            if (navItemVm == null)
            {
                throw new ArgumentException("Null tag value of menu item");
            }

            var regionManager = ServiceLocator.Current.GetInstance <IRegionManager>();

            switch (navItemVm.NavigationItem)
            {
            case NavigationItems.StartMonitor:
                if (!TryRestore(NavigationItems.StartMonitor, regionManager))
                {
                    regionManager.Regions[MainWindowRegions.MainContentRegion]
                    .RequestNavigate(nameof(StartWorkView));
                    SaveView(NavigationItems.StartMonitor, regionManager);
                }
                break;

            case NavigationItems.Statistics:
                if (!TryRestore(NavigationItems.Statistics, regionManager))
                {
                    regionManager.Regions[MainWindowRegions.MainContentRegion]
                    .RequestNavigate(nameof(StatisticsView));
                    SaveView(NavigationItems.Statistics, regionManager);
                }
                break;

            case NavigationItems.Profile:
                if (!TryRestore(NavigationItems.Profile, regionManager))
                {
                    regionManager.Regions[MainWindowRegions.MainContentRegion].RequestNavigate(nameof(ProfileView));
                    SaveView(NavigationItems.Profile, regionManager);
                }
                break;

            case NavigationItems.Settings:
                if (!TryRestore(NavigationItems.Settings, regionManager))
                {
                    regionManager.Regions[MainWindowRegions.MainContentRegion]
                    .RequestNavigate(nameof(SettingsView));
                    SaveView(NavigationItems.Settings, regionManager);
                }
                break;
            }
        }
 private void MenuControl_ItemInvoked(object sender, MahApps.Metro.Controls.HamburgerMenuItemInvokedEventArgs e)
 {
     this.MenuControl.Content = e.InvokedItem;
 }