Files
HandyControl/src/Shared/HandyControl_Shared/Interactivity/TriggerCollection.cs
T

43 lines
1.0 KiB
C#

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