using System; using System.Windows; namespace HandyControl.Interactivity; public class TriggerActionCollection : AttachableCollection { internal TriggerActionCollection() { } protected override Freezable CreateInstanceCore() { return new TriggerActionCollection(); } internal override void ItemAdded(TriggerAction item) { if (item.IsHosted) throw new InvalidOperationException(ExceptionStringTable .CannotHostTriggerActionMultipleTimesExceptionMessage); if (AssociatedObject != null) item.Attach(AssociatedObject); item.IsHosted = true; } internal override void ItemRemoved(TriggerAction item) { if (((IAttachedObject) item).AssociatedObject != null) item.Detach(); item.IsHosted = false; } protected override void OnAttached() { foreach (var action in this) action.Attach(AssociatedObject); } protected override void OnDetaching() { foreach (var action in this) action.Detach(); } }