| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.ComponentModel;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Windows;
 
- namespace OpenSEMI.ClientBase.Command
 
- {
 
-     public class PropertyCommandTrigger : CommandTrigger
 
-     {
 
-         #region Dependency Properties
 
-         #region Property Property
 
-         /// <value>Identifies the Property dependency property</value>
 
-         public static readonly DependencyProperty PropertyProperty =
 
-             DependencyProperty.Register("Property", typeof(DependencyProperty), typeof(PropertyCommandTrigger),
 
-             new FrameworkPropertyMetadata(null));
 
-         /// <value>description for Property property</value>
 
-         public DependencyProperty Property
 
-         {
 
-             get { return (DependencyProperty)GetValue(PropertyProperty); }
 
-             set { SetValue(PropertyProperty, value); }
 
-         }
 
-         #endregion
 
-         #region Value Property
 
-         /// <value>Identifies the Value dependency property</value>
 
-         public static readonly DependencyProperty ValueProperty =
 
-             DependencyProperty.Register("Value", typeof(string), typeof(PropertyCommandTrigger),
 
-             new FrameworkPropertyMetadata(null));
 
-         /// <value>description for Value property</value>
 
-         public string Value
 
-         {
 
-             get { return (string)GetValue(ValueProperty); }
 
-             set { SetValue(ValueProperty, value); }
 
-         }
 
-         #endregion
 
-         #endregion
 
-         protected override Freezable CreateInstanceCore()
 
-         {
 
-             return new PropertyCommandTrigger();
 
-         }
 
-         #region T Property
 
-         /// <value>Identifies the T dependency property</value>
 
-         public static readonly DependencyProperty TProperty =
 
-             DependencyProperty.Register("T", typeof(object), typeof(PropertyCommandTrigger),
 
-             new FrameworkPropertyMetadata(null, OnTChanged));
 
-         /// <value>description for T property</value>
 
-         public object T
 
-         {
 
-             get { return (object)GetValue(TProperty); }
 
-             set { SetValue(TProperty, value); }
 
-         }
 
-         /// <summary>
 
-         /// Invoked on T change.
 
-         /// </summary>
 
-         /// <param name="d">The object that was changed</param>
 
-         /// <param name="e">Dependency property changed event arguments</param>
 
-         static void OnTChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 
-         {
 
-         }
 
-         #endregion
 
-         protected override void InitializeCore(FrameworkElement source)
 
-         {
 
-             DependencyPropertyDescriptor descriptor = DependencyPropertyDescriptor.FromProperty(Property, source.GetType());
 
-             descriptor.AddValueChanged(source, (s, e) =>
 
-             {
 
-                 CommandParameter<object> parameter = new PropertyCommandParameter<object, object>(
 
-                     CustomParameter, Property, source.GetValue(Property));
 
-                 object value = Value;
 
-                 if (descriptor.Converter.CanConvertFrom(typeof(string)))
 
-                 {
 
-                     value = descriptor.Converter.ConvertFromString(Value);
 
-                 }
 
-                 if (object.Equals(source.GetValue(Property), value))
 
-                     ExecuteCommand(parameter);
 
-             });
 
-         }
 
-     }
 
- }
 
 
  |