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