12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using Microsoft.Xaml.Behaviors;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Input;
- namespace PDF_Office.CustomControl.SystemControl
- {
- /// <summary>
- /// 自动传送事件参数的辅助类
- /// </summary>
- public sealed class CustomCommandAction : TriggerAction<DependencyObject>
- {
- public static readonly DependencyProperty CommandParameterProperty =
- DependencyProperty.Register("CommandParameter", typeof(object), typeof(CustomCommandAction), null);
- public static readonly DependencyProperty CommandProperty = DependencyProperty.Register(
- "Command", typeof(ICommand), typeof(CustomCommandAction), null);
- public ICommand Command
- {
- get
- {
- return (ICommand)this.GetValue(CommandProperty);
- }
- set
- {
- this.SetValue(CommandProperty, value);
- }
- }
- public object CommandParameter
- {
- get
- {
- return this.GetValue(CommandParameterProperty);
- }
- set
- {
- this.SetValue(CommandParameterProperty, value);
- }
- }
- protected override void Invoke(object parameter)
- {
- if (this.AssociatedObject != null)
- {
- ICommand command = this.Command;
- if (command != null)
- {
- if (this.CommandParameter != null)
- {
- if (command.CanExecute(this.CommandParameter))
- {
- command.Execute(this.CommandParameter);
- }
- }
- else
- {
- if (command.CanExecute(parameter))
- {
- command.Execute(parameter);
- }
- }
- }
- }
- }
- }
- }
|