52 lines
1.5 KiB
C#
52 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
|
|
namespace OpenSEMI.ClientBase.Command
|
|
{
|
|
public sealed class EventCommandTrigger : CommandTrigger
|
|
{
|
|
#region Dependency Properties
|
|
|
|
#region RoutedEvent Property
|
|
|
|
/// <value>Identifies the RoutedEvent dependency property</value>
|
|
public static readonly DependencyProperty RoutedEventProperty =
|
|
DependencyProperty.Register("RoutedEvent", typeof(RoutedEvent), typeof(EventCommandTrigger),
|
|
new FrameworkPropertyMetadata(null));
|
|
|
|
/// <value>description for RoutedEvent property</value>
|
|
public RoutedEvent RoutedEvent
|
|
{
|
|
get { return (RoutedEvent)GetValue(RoutedEventProperty); }
|
|
set { SetValue(RoutedEventProperty, value); }
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
protected override Freezable CreateInstanceCore()
|
|
{
|
|
return new EventCommandTrigger();
|
|
}
|
|
|
|
|
|
protected override void InitializeCore(FrameworkElement source)
|
|
{
|
|
source.AddHandler(RoutedEvent, (RoutedEventHandler)ExecuteCommand);
|
|
}
|
|
|
|
private void ExecuteCommand(object sender, RoutedEventArgs args)
|
|
{
|
|
CommandParameter<object> parameter = new EventCommandParameter<object, RoutedEventArgs>(
|
|
CustomParameter, RoutedEvent, args);
|
|
|
|
base.ExecuteCommand(parameter);
|
|
}
|
|
}
|
|
}
|