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