| 1234567891011121314151617181920212223242526272829303132333435363738 | 
							- using System;
 
- using System.Windows;
 
- namespace OpenSEMI.ClientBase.Command
 
- {
 
- 	public class EventCommandParameter<TCustomParameter, TEventArgs> : CommandParameter<TCustomParameter> where TEventArgs : RoutedEventArgs
 
- 	{
 
- 		public RoutedEvent RoutedEvent
 
- 		{
 
- 			get;
 
- 			private set;
 
- 		}
 
- 		public TEventArgs EventArgs
 
- 		{
 
- 			get;
 
- 			private set;
 
- 		}
 
- 		public EventCommandParameter(TCustomParameter customParameter, RoutedEvent routedEvent, TEventArgs eventArgs)
 
- 			: base(customParameter)
 
- 		{
 
- 			RoutedEvent = routedEvent;
 
- 			EventArgs = eventArgs;
 
- 		}
 
- 		public new static EventCommandParameter<TCustomParameter, TEventArgs> Cast(object parameter)
 
- 		{
 
- 			EventCommandParameter<object, RoutedEventArgs> eventCommandParameter = parameter as EventCommandParameter<object, RoutedEventArgs>;
 
- 			if (eventCommandParameter == null)
 
- 			{
 
- 				throw new InvalidCastException($"Failed to case {parameter.GetType()} to {typeof(EventCommandParameter<object, RoutedEventArgs>)}");
 
- 			}
 
- 			return new EventCommandParameter<TCustomParameter, TEventArgs>((TCustomParameter)eventCommandParameter.CustomParameter, eventCommandParameter.RoutedEvent, (TEventArgs)eventCommandParameter.EventArgs);
 
- 		}
 
- 	}
 
- }
 
 
  |