namespace GreadyPoang.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) { BindingContext = AssociatedObject.BindingContext; } }