using System.Reactive.Disposables; using Avalonia.Xaml.Interactivity; namespace Avalonia.Xaml.Interactions.Custom; /// /// A base class for behaviors using attached to visual tree event. /// /// public abstract class AttachedToVisualTreeBehavior : DisposingBehavior where T : Visual { private CompositeDisposable? _disposables; /// protected override void OnAttached(CompositeDisposable disposables) { _disposables = disposables; } /// protected override void OnAttachedToVisualTree() { OnAttachedToVisualTree(_disposables!); } /// /// Called after the is attached to the visual tree. /// /// The group of disposable resources that are disposed together protected abstract void OnAttachedToVisualTree(CompositeDisposable disposable); }