Files
HandyControl/src/Shared/HandyControl_Shared/Interactivity/Behavior/BehaviorCollection.cs
T

41 lines
911 B
C#

using System.Windows;
namespace HandyControl.Interactivity;
public sealed class BehaviorCollection : AttachableCollection<Behavior>
{
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();
}
}