private void ItemsListView_ItemInvoked(object sender, ListViewItemInvokedEventArgs e)
        {
            // We always get a NavigationViewItem in the event args (the clicked item).
            // We want to raise the ItemInvoked event with the "real" item in the MenuItems
            // collection though.
            // -> We need the ItemContainerGenerator to retrieve it.
            var  itemsContainer = (ItemsControl)sender;
            var  item           = itemsContainer.ItemContainerGenerator.ItemFromContainer(e.InvokedItem);
            bool isSettingsItem = SettingsItem != null &&
                                  e.InvokedItem == SettingsItem;

            this.TraceInfo("Menu Item Invoked. Item: {0}", item);
            var eventData = new NavigationViewItemEventArgs(item, isSettingsItem);

            OnItemInvoked(eventData);

            // If the NavigationView is on Overlay-mode, we want to automatically close it.
            if (IsInOverlayMode && AutoCloseOverlayingPane)
            {
                this.TraceVerbose("Collapsing NavigationView, since user invoked item while in Overlay mode.");
                IsPaneOpen = false;
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Raises the <see cref="ItemContainerInvoked"/> event.
 /// </summary>
 /// <param name="e">Event data for the event.</param>
 protected virtual void OnItemContainerInvoked(ListViewItemInvokedEventArgs e)
 {
     ItemContainerInvoked?.Invoke(this, e);
 }