using System.Windows; namespace OpenSEMI.ClientBase.Command { public static class CommandSource { public static readonly DependencyProperty TriggerProperty = DependencyProperty.RegisterAttached("Trigger1", typeof(ICommandTrigger), typeof(CommandSource), new UIPropertyMetadata(null, TriggerPropertyChanged)); public static ICommandTrigger GetTrigger(FrameworkElement source) { return (ICommandTrigger)source.GetValue(TriggerProperty); } public static void SetTrigger(FrameworkElement source, ICommandTrigger value) { source.SetValue(TriggerProperty, value); } private static void TriggerPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { FrameworkElement source = d as FrameworkElement; (e.NewValue as ICommandTrigger)?.Initialize(source); } } }