diff --git a/src/Avalonia.Base/AvaloniaObject.cs b/src/Avalonia.Base/AvaloniaObject.cs
index 05753738cb..afea0ba345 100644
--- a/src/Avalonia.Base/AvaloniaObject.cs
+++ b/src/Avalonia.Base/AvaloniaObject.cs
@@ -416,7 +416,7 @@ namespace Avalonia
///
/// A disposable which can be used to terminate the binding.
///
- public IBindingExpression Bind(AvaloniaProperty property, IBinding binding)
+ public BindingExpressionBase Bind(AvaloniaProperty property, IBinding binding)
{
if (binding is not IBinding2 b)
throw new NotSupportedException($"Unsupported IBinding implementation '{binding}'.");
diff --git a/src/Avalonia.Base/AvaloniaProperty.cs b/src/Avalonia.Base/AvaloniaProperty.cs
index 1b32e4699e..62e8db62d7 100644
--- a/src/Avalonia.Base/AvaloniaProperty.cs
+++ b/src/Avalonia.Base/AvaloniaProperty.cs
@@ -566,7 +566,7 @@ namespace Avalonia
///
/// The object instance.
/// The binding source.
- internal abstract IBindingExpression RouteBind(
+ internal abstract BindingExpressionBase RouteBind(
AvaloniaObject o,
UntypedBindingExpressionBase source);
diff --git a/src/Avalonia.Base/Data/Core/BindingExpressionBase.cs b/src/Avalonia.Base/Data/BindingExpressionBase.cs
similarity index 84%
rename from src/Avalonia.Base/Data/Core/BindingExpressionBase.cs
rename to src/Avalonia.Base/Data/BindingExpressionBase.cs
index 401f8ac520..ad411130cf 100644
--- a/src/Avalonia.Base/Data/Core/BindingExpressionBase.cs
+++ b/src/Avalonia.Base/Data/BindingExpressionBase.cs
@@ -1,9 +1,10 @@
-using Avalonia.PropertyStore;
+using System;
+using Avalonia.PropertyStore;
using Avalonia.Styling;
-namespace Avalonia.Data.Core;
+namespace Avalonia.Data;
-public abstract class BindingExpressionBase : IBindingExpression, ISetterInstance
+public abstract class BindingExpressionBase : IDisposable, ISetterInstance
{
private protected BindingExpressionBase()
{
diff --git a/src/Avalonia.Base/Data/IBindingExpression.cs b/src/Avalonia.Base/Data/IBindingExpression.cs
deleted file mode 100644
index 8ab35c61f8..0000000000
--- a/src/Avalonia.Base/Data/IBindingExpression.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System;
-
-namespace Avalonia.Data;
-
-public interface IBindingExpression : IDisposable
-{
-}
diff --git a/src/Avalonia.Base/DirectPropertyBase.cs b/src/Avalonia.Base/DirectPropertyBase.cs
index c3aa7ac602..733df0d4a8 100644
--- a/src/Avalonia.Base/DirectPropertyBase.cs
+++ b/src/Avalonia.Base/DirectPropertyBase.cs
@@ -183,7 +183,7 @@ namespace Avalonia
return o.Bind(this, source);
}
- internal override IBindingExpression RouteBind(AvaloniaObject o, UntypedBindingExpressionBase source)
+ internal override BindingExpressionBase RouteBind(AvaloniaObject o, UntypedBindingExpressionBase source)
{
return o.GetValueStore().AddBinding(this, source);
}
diff --git a/src/Avalonia.Base/PropertyStore/ValueStore.cs b/src/Avalonia.Base/PropertyStore/ValueStore.cs
index 7da95a2990..4bca74b1b6 100644
--- a/src/Avalonia.Base/PropertyStore/ValueStore.cs
+++ b/src/Avalonia.Base/PropertyStore/ValueStore.cs
@@ -43,7 +43,7 @@ namespace Avalonia.PropertyStore
ReevaluateEffectiveValues();
}
- public IBindingExpression AddBinding(
+ public BindingExpressionBase AddBinding(
StyledProperty property,
UntypedBindingExpressionBase source)
{
@@ -156,7 +156,7 @@ namespace Avalonia.PropertyStore
}
}
- public IBindingExpression AddBinding(DirectPropertyBase property, UntypedBindingExpressionBase source)
+ public BindingExpressionBase AddBinding(DirectPropertyBase property, UntypedBindingExpressionBase source)
{
DisposeExistingLocalValueBinding(property);
_localValueBindings ??= new();
diff --git a/src/Avalonia.Base/StyledProperty.cs b/src/Avalonia.Base/StyledProperty.cs
index e8ff8f72ed..8fdc62f361 100644
--- a/src/Avalonia.Base/StyledProperty.cs
+++ b/src/Avalonia.Base/StyledProperty.cs
@@ -228,7 +228,7 @@ namespace Avalonia
return target.Bind(this, source, priority);
}
- internal override IBindingExpression RouteBind(AvaloniaObject o, UntypedBindingExpressionBase source)
+ internal override BindingExpressionBase RouteBind(AvaloniaObject o, UntypedBindingExpressionBase source)
{
return o.GetValueStore().AddBinding(this, source);
}
diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaPropertyTests.cs b/tests/Avalonia.Base.UnitTests/AvaloniaPropertyTests.cs
index 837fdaeac7..fcdbcf9704 100644
--- a/tests/Avalonia.Base.UnitTests/AvaloniaPropertyTests.cs
+++ b/tests/Avalonia.Base.UnitTests/AvaloniaPropertyTests.cs
@@ -175,7 +175,7 @@ namespace Avalonia.Base.UnitTests
throw new NotImplementedException();
}
- internal override IBindingExpression RouteBind(AvaloniaObject o, UntypedBindingExpressionBase source)
+ internal override BindingExpressionBase RouteBind(AvaloniaObject o, UntypedBindingExpressionBase source)
{
throw new NotImplementedException();
}