コード例 #1
0
        /// <summary>
        ///		Añade los menús de un tipo
        /// </summary>
        private void AddMenus(ItemCollection items, Model.Definitions.MenuModelCollection menus, Model.Definitions.MenuModel.MenuType type)
        {
            foreach (Model.Definitions.MenuModel menu in menus)
            {
                if (menu.Type == type)
                {
                    MenuItem optMenu = new MenuItem();

                    // Asigna las propiedades
                    optMenu.Header = menu.Name;
                    optMenu.Icon   = new BauMvvm.Views.Tools.ToolsWpf().GetImage(menu.Icon);
                    optMenu.Tag    = menu;
                    // Añade el manejador de eventos
                    optMenu.Click += (sender, evntArgs) =>
                    {
                        if (sender is MenuItem)
                        {
                            MenuItem option = sender as MenuItem;

                            if (option != null && option.Tag is Model.Definitions.MenuModel)
                            {
                                ViewModel.FileOptionsCommand.Execute(option.Tag as Model.Definitions.MenuModel);
                            }
                        }
                    };
                    // Añade el menú
                    items.Add(optMenu);
                }
            }
        }
コード例 #2
0
        /// <summary>
        ///		Carga los menús
        /// </summary>
        private void LoadMenus(ContextMenu ctxMenu)
        {
            Model.Definitions.MenuModelCollection menus = ViewModel.GetMenus();

            // Elimina los menús antiguos
            RemoveMenus(ctxMenu.Items);
            // Añade los menús de opciones
            AddMenus(ctxMenu.Items, menus, Model.Definitions.MenuModel.MenuType.Command);
            // Muestra / oculta el separador de las opciones de herramientas
            foreach (Control optMenu in ctxMenu.Items)
            {
                if (optMenu is Separator && optMenu.Name.EqualsIgnoreCase("mnuOptOptions"))
                {
                    // Oculta / muestra el separador
                    if (menus.Count == 0)
                    {
                        optMenu.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        optMenu.Visibility = Visibility.Visible;
                    }
                }
            }
        }