Files
HandyControl/Net40/HandyControl_Net40/Interactivity/TriggerCollection.cs
T
2019-01-21 11:12:38 +08:00

42 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();
}
}
}