41 lines
911 B
C#
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();
|
|
}
|
|
} |