public static System.Windows.Interactivity.TriggerCollection GetTriggers(DependencyObject obj) { System.Windows.Interactivity.TriggerCollection value = (System.Windows.Interactivity.TriggerCollection)obj.GetValue(Interaction.TriggersProperty); if (value == null) { value = new System.Windows.Interactivity.TriggerCollection(); obj.SetValue(Interaction.TriggersProperty, value); } return(value); }
private static void OnTriggersChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) { System.Windows.Interactivity.TriggerCollection oldValue = args.OldValue as System.Windows.Interactivity.TriggerCollection; System.Windows.Interactivity.TriggerCollection newValue = args.NewValue as System.Windows.Interactivity.TriggerCollection; if (oldValue != newValue) { if (oldValue != null && ((IAttachedObject)oldValue).AssociatedObject != null) { oldValue.Detach(); } if (newValue != null && obj != null) { if (((IAttachedObject)newValue).AssociatedObject != null) { throw new InvalidOperationException(ExceptionStringTable.CannotHostTriggerCollectionMultipleTimesExceptionMessage); } newValue.Attach(obj); } } }
private static void OnTriggersChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { StyleTriggerCollection styleTriggers = e.NewValue as StyleTriggerCollection; if (styleTriggers != null) { System.Windows.Interactivity.TriggerCollection triggers = System.Windows.Interactivity.Interaction.GetTriggers(d); foreach (System.Windows.Interactivity.TriggerBase trigger in styleTriggers) { System.Windows.Interactivity.TriggerBase triggerClone = (System.Windows.Interactivity.TriggerBase)trigger.Clone(); foreach (System.Windows.Interactivity.TriggerAction action in trigger.Actions) { triggerClone.Actions.Add((System.Windows.Interactivity.TriggerAction)action.Clone()); } triggers.Add(triggerClone); } } }