コード例 #1
0
        /// <summary>
        /// 执行生成命令的核心逻辑。
        /// </summary>
        /// <param name="context"></param>
        private static void DoGenerate(CommandAutoUIContext context)
        {
            //使用分组算法进行分组,并为每个组创建对应的控件生成器
            //注意:如果是单独的Command,一样生成一个单独的“组”
            var grouping = new GroupOperation { Context = context };
            var groups = grouping.GroupCommands();

            //对于每一个命令组,开始生成控件,并添加到上下文对象中。
            foreach (var group in groups)
            {
                var generator = group.Generator;
                generator.CreateControlToContext();
            }

            //根据分组生成的控件,也都加入到容器中。
            context.AttachGroupedItems();
        }
コード例 #2
0
        /// <summary>
        /// 为指定的Toolbar生成子项。
        /// </summary>
        /// <param name="commandsContainer">需要生成Commands的toolbar</param>
        /// <param name="boType">toolbar是为这个类型提供服务</param>
        /// <param name="commandArg"></param>
        /// <param name="commands">在这个command集合中筛选</param>
        public void Generate(ItemsControl commandsContainer, object commandArg, IEnumerable<WPFCommand> commands)
        {
            if (commandsContainer == null) throw new ArgumentNullException("toolbar");
            if (commands == null) throw new ArgumentNullException("commands");

            //生成一个上下文对象
            var context = new CommandAutoUIContext(commandsContainer, commandArg, commands);

            ////过滤不可用的命令
            //var filteredCommands = this.FilterExsitingCommands(commandsContainer, commands);

            DoGenerate(context);

            ResetContainerVisibility(commandsContainer);

            SealViewCommands(commandArg);
        }
コード例 #3
0
ファイル: CommandAutoUIManager.cs プロジェクト: yungtau/oea
        /// <summary>
        /// 执行生成命令的核心逻辑。
        /// </summary>
        /// <param name="context"></param>
        private static void DoGenerate(CommandAutoUIContext context)
        {
            //使用分组算法进行分组,并为每个组创建对应的控件生成器
            //注意:如果是单独的Command,一样生成一个单独的“组”
            var grouping = new GroupOperation {
                Context = context
            };
            var groups = grouping.GroupCommands();

            //对于每一个命令组,开始生成控件,并添加到上下文对象中。
            foreach (var group in groups)
            {
                var generator = group.Generator;
                generator.CreateControlToContext();
            }

            //根据分组生成的控件,也都加入到容器中。
            context.AttachGroupedItems();
        }
コード例 #4
0
ファイル: CommandAutoUIManager.cs プロジェクト: yungtau/oea
        /// <summary>
        /// 为指定的Toolbar生成子项。
        /// </summary>
        /// <param name="commandsContainer">需要生成Commands的toolbar</param>
        /// <param name="boType">toolbar是为这个类型提供服务</param>
        /// <param name="commandArg"></param>
        /// <param name="commands">在这个command集合中筛选</param>
        public void Generate(ItemsControl commandsContainer, object commandArg, IEnumerable <WPFCommand> commands)
        {
            if (commandsContainer == null)
            {
                throw new ArgumentNullException("toolbar");
            }
            if (commands == null)
            {
                throw new ArgumentNullException("commands");
            }

            //生成一个上下文对象
            var context = new CommandAutoUIContext(commandsContainer, commandArg, commands);

            ////过滤不可用的命令
            //var filteredCommands = this.FilterExsitingCommands(commandsContainer, commands);

            DoGenerate(context);

            ResetContainerVisibility(commandsContainer);

            SealViewCommands(commandArg);
        }