diff --git a/src/Avalonia.Base/PropertyStore/BindingEntry.cs b/src/Avalonia.Base/PropertyStore/BindingEntry.cs
index 637272ad6a..09a0f169df 100644
--- a/src/Avalonia.Base/PropertyStore/BindingEntry.cs
+++ b/src/Avalonia.Base/PropertyStore/BindingEntry.cs
@@ -19,15 +19,18 @@ namespace Avalonia.PropertyStore
/// The property type.
internal class BindingEntry : IBindingEntry, IPriorityValueEntry, IObserver>
{
+ private readonly IAvaloniaObject _owner;
private IValueSink _sink;
private IDisposable? _subscription;
public BindingEntry(
+ IAvaloniaObject owner,
StyledPropertyBase property,
IObservable> source,
BindingPriority priority,
IValueSink sink)
{
+ _owner = owner;
Property = property;
Source = source;
Priority = priority;
diff --git a/src/Avalonia.Base/PropertyStore/PriorityValue.cs b/src/Avalonia.Base/PropertyStore/PriorityValue.cs
index d6139b2927..2785dc6840 100644
--- a/src/Avalonia.Base/PropertyStore/PriorityValue.cs
+++ b/src/Avalonia.Base/PropertyStore/PriorityValue.cs
@@ -95,7 +95,7 @@ namespace Avalonia.PropertyStore
public BindingEntry AddBinding(IObservable> source, BindingPriority priority)
{
- var binding = new BindingEntry(Property, source, priority, this);
+ var binding = new BindingEntry(_owner, Property, source, priority, this);
var insert = FindInsertPoint(binding.Priority);
_entries.Insert(insert, binding);
return binding;
diff --git a/src/Avalonia.Base/ValueStore.cs b/src/Avalonia.Base/ValueStore.cs
index af093c2b22..58ebc48652 100644
--- a/src/Avalonia.Base/ValueStore.cs
+++ b/src/Avalonia.Base/ValueStore.cs
@@ -121,7 +121,7 @@ namespace Avalonia
}
else
{
- var entry = new BindingEntry(property, source, priority, this);
+ var entry = new BindingEntry(_owner, property, source, priority, this);
_values.AddValue(property, entry);
entry.Start();
return entry;