Exemplo n.º 1
0
        internal static CommandBinding CreateCommandBinding(ModelingDesigner designer, WPFDesignerCommand cmd)
        {
            var adpater = new WPFCommandAdapter(cmd, designer);

            var wpfCmd = cmd.GetWPFCommand();

            var binding = new CommandBinding(wpfCmd);
            binding.Executed += adpater.binding_Executed;
            binding.CanExecute += adpater.binding_CanExecute;

            return binding;
        }
Exemplo n.º 2
0
        internal static CommandBinding CreateCommandBinding(ModelingDesigner designer, WPFDesignerCommand cmd)
        {
            var adpater = new WPFCommandAdapter(cmd, designer);

            var wpfCmd = cmd.GetWPFCommand();

            var binding = new CommandBinding(wpfCmd);

            binding.Executed   += adpater.binding_Executed;
            binding.CanExecute += adpater.binding_CanExecute;

            return(binding);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 为设计器绑定指定的命令到指定的元素中。
        /// </summary>
        /// <typeparam name="TCommand"></typeparam>
        /// <param name="designer"></param>
        /// <param name="context">如果没有指定上下文,则使用 designer 作为上下文。</param>
        public static void Bind <TCommand>(ModelingDesigner designer, UIElement context = null)
            where TCommand : WPFDesignerCommand, new()
        {
            var command = new TCommand();

            if (context == null)
            {
                context = designer;
            }

            var binding = WPFCommandAdapter.CreateCommandBinding(designer, command);

            context.CommandBindings.Add(binding);
        }