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