コード例 #1
0
        /// <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();
        }
コード例 #2
0
        /// <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();
        }