TriggerCollection.cs 913 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Windows;
  2. namespace HandyControl.Interactivity;
  3. public sealed class TriggerCollection : AttachableCollection<TriggerBase>
  4. {
  5. internal TriggerCollection()
  6. {
  7. }
  8. protected override void OnAttached()
  9. {
  10. foreach (var triggerBase in this)
  11. triggerBase.Attach(AssociatedObject);
  12. }
  13. protected override void OnDetaching()
  14. {
  15. foreach (var triggerBase in this)
  16. triggerBase.Detach();
  17. }
  18. internal override void ItemAdded(TriggerBase item)
  19. {
  20. if (AssociatedObject == null)
  21. return;
  22. item.Attach(AssociatedObject);
  23. }
  24. internal override void ItemRemoved(TriggerBase item)
  25. {
  26. if (((IAttachedObject) item).AssociatedObject == null)
  27. return;
  28. item.Detach();
  29. }
  30. protected override Freezable CreateInstanceCore()
  31. {
  32. return new TriggerCollection();
  33. }
  34. }