LoadedBehavior.cs 945 B

1234567891011121314151617181920212223242526272829303132
  1. using System.Reactive.Disposables;
  2. using Avalonia.Controls;
  3. using Avalonia.Xaml.Interactivity;
  4. namespace Avalonia.Xaml.Interactions.Custom;
  5. /// <summary>
  6. /// A base class for behaviors using loaded event.
  7. /// </summary>
  8. /// <typeparam name="T"></typeparam>
  9. public abstract class LoadedBehavior<T> : DisposingBehavior<T> where T : Control
  10. {
  11. private CompositeDisposable? _disposables;
  12. /// <inheritdoc />
  13. protected override void OnAttached(CompositeDisposable disposables)
  14. {
  15. _disposables = disposables;
  16. }
  17. /// <inheritdoc />
  18. protected override void OnLoaded()
  19. {
  20. OnLoaded(_disposables!);
  21. }
  22. /// <summary>
  23. /// Called after the <see cref="StyledElementBehavior{T}.AssociatedObject"/> is loaded.
  24. /// </summary>
  25. /// <param name="disposable">The group of disposable resources that are disposed together</param>
  26. protected abstract void OnLoaded(CompositeDisposable disposable);
  27. }