EventCommandTrigger.cs 986 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System.Windows;
  2. namespace OpenSEMI.ClientBase.Command
  3. {
  4. public sealed class EventCommandTrigger : CommandTrigger
  5. {
  6. public static readonly DependencyProperty RoutedEventProperty = DependencyProperty.Register("RoutedEvent", typeof(RoutedEvent), typeof(EventCommandTrigger), new FrameworkPropertyMetadata(null));
  7. public RoutedEvent RoutedEvent
  8. {
  9. get
  10. {
  11. return (RoutedEvent)GetValue(RoutedEventProperty);
  12. }
  13. set
  14. {
  15. SetValue(RoutedEventProperty, value);
  16. }
  17. }
  18. protected override Freezable CreateInstanceCore()
  19. {
  20. return new EventCommandTrigger();
  21. }
  22. protected override void InitializeCore(FrameworkElement source)
  23. {
  24. source.AddHandler(RoutedEvent, new RoutedEventHandler(ExecuteCommand));
  25. }
  26. private void ExecuteCommand(object sender, RoutedEventArgs args)
  27. {
  28. CommandParameter<object> parameter = new EventCommandParameter<object, RoutedEventArgs>(base.CustomParameter, RoutedEvent, args);
  29. ExecuteCommand(parameter);
  30. }
  31. }
  32. }