| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | 
							- using System.Windows;
 
- namespace OpenSEMI.ClientBase.Command
 
- {
 
-     public interface ICommandTrigger
 
-     {
 
-         void Initialize(FrameworkElement source);
 
-     }
 
-     public static class CommandSource
 
-     {
 
-        
 
-         public static ICommandTrigger GetTrigger(FrameworkElement source)
 
-         {
 
-             return (ICommandTrigger)source.GetValue(TriggerProperty);
 
-         }
 
-         public static void SetTrigger(FrameworkElement source, ICommandTrigger value)
 
-         {
 
-             source.SetValue(TriggerProperty, value);
 
-         }
 
-         // Using a DependencyProperty as the backing store for Trigger.  This enables animation, styling, binding, etc...
 
-         public static readonly DependencyProperty TriggerProperty =
 
-             DependencyProperty.RegisterAttached(
 
-                 "Trigger1",
 
-                 typeof(ICommandTrigger),
 
-                 typeof(CommandSource),
 
-                 new UIPropertyMetadata(
 
-                     null,
 
-                     TriggerPropertyChanged));
 
-         private static void TriggerPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 
-         {
 
-             FrameworkElement element = d as FrameworkElement;
 
-             ICommandTrigger commandTrigger = e.NewValue as ICommandTrigger;
 
-             if (commandTrigger != null)
 
-             {
 
-                 commandTrigger.Initialize(element);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |