namespace Gready_Poang.Common; public class BehaviorBase : Behavior where T : BindableObject { public T? AssociatedObject { get; private set; } protected override void OnAttachedTo(T bindable) { base.OnAttachedTo(bindable); AssociatedObject = bindable; if (bindable.BindingContext != null) BindingContext = bindable.BindingContext; bindable.BindingContextChanged += OnBindingContextChanged; } protected override void OnDetachingFrom(T bindable) { base.OnDetachingFrom(bindable); bindable.BindingContextChanged -= OnBindingContextChanged; AssociatedObject = null; } void OnBindingContextChanged(object? sender, EventArgs e) { if (AssociatedObject != null) BindingContext = AssociatedObject.BindingContext; } }