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; }
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); }
/// <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); }