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);
- }
- }
- }
- }
|