diff --git a/src/Avalonia.Styling/Styling/PropertySetterBindingInstance.cs b/src/Avalonia.Styling/Styling/PropertySetterBindingInstance.cs index f975862892..e177993d13 100644 --- a/src/Avalonia.Styling/Styling/PropertySetterBindingInstance.cs +++ b/src/Avalonia.Styling/Styling/PropertySetterBindingInstance.cs @@ -24,6 +24,7 @@ namespace Avalonia.Styling private BindingValue _value; private IDisposable? _subscription; private IDisposable? _subscriptionTwoWay; + private IDisposable? _innerSubscription; private bool _isActive; public PropertySetterBindingInstance( @@ -121,6 +122,9 @@ namespace Avalonia.Styling sub.Dispose(); } + _innerSubscription?.Dispose(); + _innerSubscription = null; + base.Dispose(); } @@ -144,13 +148,13 @@ namespace Avalonia.Styling protected override void Subscribed() { - _subscription = _binding.Observable.Subscribe(_inner); + _innerSubscription = _binding.Observable.Subscribe(_inner); } protected override void Unsubscribed() { - _subscription?.Dispose(); - _subscription = null; + _innerSubscription?.Dispose(); + _innerSubscription = null; } private void PublishNext()