protected override void OnEvent(EventArgs eventArgs) { if (this.Command == null) { return; } CommandActionExParameter param = new CommandActionExParameter(); param.Parameter1 = CommandParameter1; param.Parameter2 = CommandParameter2; param.Parameter3 = CommandParameter3; if (PassEventArgsToCommand) { param.EventArgs = eventArgs; } if (PassEventSenderToCommand) { param.EventSender = this.Source; } if (PassRoutEventArgsToCommand) { param.RoutedEventArgs = eventArgs as RoutedEventArgs; } if (this.Command.CanExecute(param)) { this.Command.Execute(param); } }
protected override void Invoke(object parameter) { if (this.Command == null) { return; } CommandActionExParameter param = new CommandActionExParameter(); param.Parameter1 = CommandParameter1; param.Parameter2 = CommandParameter2; param.Parameter3 = CommandParameter3; if (PassEventSenderToCommand) { param.EventSender = this.AssociatedObject; } if (PassEventArgsToCommand) { param.EventArgs = parameter as EventArgs; } if (PassRoutEventArgsToCommand) { param.RoutedEventArgs = parameter as RoutedEventArgs; } if (this.Command.CanExecute(param)) { this.Command.Execute(param); } }
private void Command_CanExecuteChanged(object sender, EventArgs e) { UIElement element = this.Source as UIElement; if (element != null) { CommandActionExParameter param = new CommandActionExParameter(); param.Parameter1 = CommandParameter1; param.Parameter2 = CommandParameter2; param.Parameter3 = CommandParameter3; element.IsEnabled = this.Command.CanExecute(param); } }
protected override void OnAttached() { base.OnAttached(); if (this.Command != null) { UIElement element = this.Source as UIElement; if (element != null) { CommandActionExParameter param = new CommandActionExParameter(); param.Parameter1 = CommandParameter1; param.Parameter2 = CommandParameter2; param.Parameter3 = CommandParameter3; element.IsEnabled = this.Command.CanExecute(param); this.Command.CanExecuteChanged += Command_CanExecuteChanged; } } }
private static void CommandParameter3ChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { var invokeCommand = d as EventToCommandEx; if (invokeCommand != null) { invokeCommand.SetValue(CommandParameter3Property, e.NewValue); } UIElement element = invokeCommand.Source as UIElement; if (element != null) { CommandActionExParameter param = new CommandActionExParameter(); param.Parameter1 = invokeCommand.CommandParameter1; param.Parameter2 = invokeCommand.CommandParameter2; param.Parameter3 = invokeCommand.CommandParameter3; element.IsEnabled = invokeCommand.Command.CanExecute(param); } }