Пример #1
0
 /// <summary>
 ///		Añade los menús de un grupo a una opción
 /// </summary>
 private void AddMenus(MenuItem mnuItem, MenuGroupViewModelCollection groups)
 {
     // Borra los elementos del menú
     mnuItem.Items.Clear();
     // Añade los menús del grupo
     foreach (MenuGroupViewModel group in groups)
     {
         foreach (MenuItemViewModel menu in group.MenuItems)
         {
             mnuItem.Items.Add(CreateMenu(menu));
         }
     }
     // Cambia los estados del menú
     mnuItem.IsEnabled = mnuItem.Items.Count != 0;
 }
Пример #2
0
        /// <summary>
        ///		Añade opciones de menú entre dos opciones
        /// </summary>
        private void AddMenusBetween(MenuItem mnuParent, Separator mnuStart, Separator mnuEnd, MenuGroupViewModelCollection groups)
        {
            int startIndex = mnuParent.Items.IndexOf(mnuStart);
            int indexEnd   = mnuParent.Items.IndexOf(mnuEnd);

            // Borra las opciones de menú que se hubiesen creado anteriormente
            DeleteMenusBetween(mnuParent, startIndex, indexEnd);
            // Añade las opciones de menú
            foreach (MenuGroupViewModel group in groups)
            {
                foreach (MenuItemViewModel menu in group.MenuItems)
                {
                    // Inserta la opción de menú
                    mnuParent.Items.Insert(startIndex + 1, CreateMenu(menu));
                    // Incrementa la posición
                    startIndex++;
                }
            }
            // Oculta el separador final si no se ha añadido nada
            if (groups.Count == 0)
            {
                mnuEnd.Visibility = Visibility.Collapsed;
            }
            else
            {
                mnuEnd.Visibility = Visibility.Visible;
            }
        }