chore: separated System.Windows.Interactivity code

This commit is contained in:
NaBian committed 2022-03-13 21:40:09 +08:00
1 parent 0da2875641
commit ef4226ddf9
26 files changed
+54 -20

No files matched your search

@@ -0,0 +1,45 @@
using System;
using System.Windows;
namespace HandyControl.Interactivity;
public class TriggerActionCollection : AttachableCollection<TriggerAction>
{
internal TriggerActionCollection()
{
}
protected override Freezable CreateInstanceCore()
{
return new TriggerActionCollection();
}
internal override void ItemAdded(TriggerAction item)
{
if (item.IsHosted)
throw new InvalidOperationException(ExceptionStringTable
.CannotHostTriggerActionMultipleTimesExceptionMessage);
if (AssociatedObject != null)
item.Attach(AssociatedObject);
item.IsHosted = true;
}
internal override void ItemRemoved(TriggerAction item)
{
if (((IAttachedObject) item).AssociatedObject != null)
item.Detach();
item.IsHosted = false;
}
protected override void OnAttached()
{
foreach (var action in this)
action.Attach(AssociatedObject);
}
protected override void OnDetaching()
{
foreach (var action in this)
action.Detach();
}
}