diff --git a/src/Avalonia.Base/Data/Optional.cs b/src/Avalonia.Base/Data/Optional.cs
index 80abd90646..3fbcd356ff 100644
--- a/src/Avalonia.Base/Data/Optional.cs
+++ b/src/Avalonia.Base/Data/Optional.cs
@@ -20,7 +20,7 @@ namespace Avalonia.Data
/// conversion from
/// - For an missing value, use or simply `default`
///
- public readonly struct Optional
+ public readonly struct Optional : IEquatable>
{
private readonly T _value;
@@ -50,6 +50,9 @@ namespace Avalonia.Data
///
public override bool Equals(object obj) => obj is Optional o && this == o;
+ ///
+ public bool Equals(Optional other) => this == other;
+
///
public override int GetHashCode() => HasValue ? Value!.GetHashCode() : 0;