/// <summary> /// Populates the current menu with items based on the actions collection /// </summary> /// <param name="actions">List of actions</param> private void PopulateMenu(ObservableCollection <IViewAction> actions) { RemoveAllMenuKeyBindings(); Items.Clear(); if (actions == null) { return; } var rootCategories = ViewActionPolicy != null?ViewActionPolicy.GetTopLevelActionCategories(actions, "File", "File", this) : ViewActionHelper.GetTopLevelActionCategories(actions, "File", "File"); foreach (var category in rootCategories) { var menuItem = new TopLevelViewActionMenuItem { Header = GetMenuTitle(category) }; menuItem.SetBinding(VisibilityProperty, new Binding("Count") { Source = menuItem.Items, Converter = new ItemsCollectionCountToVisibleConverter(menuItem.Items) }); PopulateSubCategories(menuItem, category, actions); Items.Add(menuItem); } CreateAllMenuKeyBindings(); }
/// <summary> /// Populates the current menu with items based on the actions collection /// </summary> /// <param name="actions">List of primary actions</param> /// <param name="actions2">List of view specific actions</param> private void PopulateMenu(IHaveActions actions, IHaveActions actions2 = null) { RemoveAllMenuKeyBindings(); Items.Clear(); if (actions == null) return; var actionList = ViewActionHelper.GetConsolidatedActions(actions, actions2, "File"); var rootCategories = ViewActionHelper.GetTopLevelActionCategories(actionList, "File", "File"); foreach (var category in rootCategories) { var menuItem = new TopLevelViewActionMenuItem {Header = GetMenuTitle(category)}; menuItem.SetBinding(VisibilityProperty, new Binding("Count") {Source = menuItem.Items, Converter = new ItemsCollectionCountToVisibleConverter(menuItem.Items)}); PopulateSubCategories(menuItem, category, actionList); Items.Add(menuItem); } CreateAllMenuKeyBindings(); }