private void AddGroupsRecursive(MesMenuDefinitionBase menu, MesStandardMenuItem menuModel) { List <MesMenuItemGroupDefinition> groups = _menuItemGroups .Where(x => x.Parent == menu) .Where(x => !_excludeMenuItemGroups.Contains(x)) .OrderBy(x => x.SortOrder) .ToList(); for (Int32 i = 0; i < groups.Count; i++) { MesMenuItemGroupDefinition group = groups[i]; IOrderedEnumerable <MesMenuItemDefinition> menuItems = _menuItems .Where(x => x.Group == group) .Where(x => !_excludeMenuItems.Contains(x)) .OrderBy(x => x.SortOrder); foreach (MesMenuItemDefinition menuItem in menuItems) { MesStandardMenuItem menuItemModel = (menuItem.CommandDefinition != null) ? new MesCommandMenuItem(_commandService.GetCommand(menuItem.CommandDefinition), menuModel) : (MesStandardMenuItem) new MesTextMenuItem(menuItem); AddGroupsRecursive(menuItem, menuItemModel); menuModel.Add(menuItemModel); } if (i < groups.Count - 1 && menuItems.Any()) { menuModel.Add(new MesMenuItemSeparator()); } } }
public MesExcludeMenuItemGroupDefinition(MesMenuItemGroupDefinition menuItemGroupDefinition) { _menuItemGroupDefinitionToExclude = menuItemGroupDefinition; }
public MesTextMenuItemDefinition(MesMenuItemGroupDefinition group, int sortOrder, string text, Uri iconSource = null) : base(group, sortOrder) { _text = text; _iconSource = iconSource; }
public MesCommandMenuItemDefinition(MesMenuItemGroupDefinition group, int sortOrder) : base(group, sortOrder) { _commandDefinition = Mvx.IoCProvider.Resolve <IMesCommandService>().GetCommandDefinition(typeof(TCommandDefinition)); _keyGesture = Mvx.IoCProvider.Resolve <IMesCommandKeyGestureService>().GetPrimaryKeyGesture(_commandDefinition); }