| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- using System.Windows;
 
- using System.Windows.Input;
 
- namespace OpenSEMI.ClientBase.Command
 
- {
 
-     public abstract class CommandTrigger : Freezable, ICommandTrigger
 
-     {
 
-         public bool IsInitialized { get; set; }
 
-         #region Dependency Properties
 
-         #region Command Property
 
-         /// <value>Identifies the Command dependency property</value>
 
-         public static readonly DependencyProperty CommandProperty =
 
-             DependencyProperty.Register("Command", typeof(ICommand), typeof(CommandTrigger),
 
-             new FrameworkPropertyMetadata(null));
 
-         /// <value>description for Command property</value>
 
-         public ICommand Command
 
-         {
 
-             get { return (ICommand)GetValue(CommandProperty); }
 
-             set { SetValue(CommandProperty, value); }
 
-         }
 
-         #endregion
 
-         #region CustomParameter Property
 
-         /// <value>Identifies the CustomParameterProperty dependency property</value>
 
-         public static readonly DependencyProperty CustomParameterProperty =
 
-             DependencyProperty.Register("CustomParameter", typeof(object), typeof(CommandTrigger),
 
-             new FrameworkPropertyMetadata(null));
 
-         /// <value>description for CustomParameter property</value>
 
-         public object CustomParameter
 
-         {
 
-             get { return (object)GetValue(CustomParameterProperty); }
 
-             set { SetValue(CustomParameterProperty, value); }
 
-         }
 
-         #endregion
 
-         #region CommandTarget Property
 
-         /// <value>Identifies the CommandTarget dependency property</value>
 
-         public static readonly DependencyProperty CommandTargetProperty =
 
-             DependencyProperty.Register("CommandTarget", typeof(IInputElement), typeof(CommandTrigger),
 
-             new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits));
 
-         /// <value>description for CommandTarget property</value>
 
-         public IInputElement CommandTarget
 
-         {
 
-             get { return (IInputElement)GetValue(CommandTargetProperty); }
 
-             set { SetValue(CommandTargetProperty, value); }
 
-         }
 
-         #endregion
 
-         #endregion
 
-         #region Internals
 
-         void ICommandTrigger.Initialize(FrameworkElement source)
 
-         {
 
-             if (IsInitialized)
 
-                 return;
 
-             InitializeCore(source);
 
-             IsInitialized = true;
 
-         }
 
-         protected abstract void InitializeCore(FrameworkElement source);
 
-         protected void ExecuteCommand(CommandParameter<object> parameter)
 
-         {
 
-             if (Command == null)
 
-                 return;
 
-             RoutedCommand routedCommand = Command as RoutedCommand;
 
-             if (routedCommand != null)
 
-             {
 
-                 routedCommand.Execute(parameter, CommandTarget);
 
-             }
 
-             else
 
-             {
 
-                 Command.Execute(parameter);
 
-             }
 
-         }
 
-         #endregion
 
-     }
 
- }
 
 
  |