diff --git a/src/Avalonia.Base/AvaloniaObjectExtensions.cs b/src/Avalonia.Base/AvaloniaObjectExtensions.cs
index 0017f955830..76138beb4d6 100644
--- a/src/Avalonia.Base/AvaloniaObjectExtensions.cs
+++ b/src/Avalonia.Base/AvaloniaObjectExtensions.cs
@@ -18,7 +18,10 @@ public static class AvaloniaObjectExtensions
/// An .
public static IBinding ToBinding(this IObservable source)
{
- return new BindingAdaptor(source.Select(x => (object?)x));
+ return new BindingAdaptor(
+ typeof(T).IsValueType
+ ? source.Select(x => (object?)x)
+ : (IObservable