using System.Windows; namespace HandyControl.Interactivity; public sealed class BehaviorCollection : AttachableCollection { internal BehaviorCollection() { } protected override void OnAttached() { foreach (var behavior in this) behavior.Attach(AssociatedObject); } protected override void OnDetaching() { foreach (var behavior in this) behavior.Detach(); } internal override void ItemAdded(Behavior item) { if (item == null || AssociatedObject == null) return; item.Attach(AssociatedObject); } internal override void ItemRemoved(Behavior item) { if (((IAttachedObject) item)?.AssociatedObject == null) return; item.Detach(); } protected override Freezable CreateInstanceCore() { return new BehaviorCollection(); } }