Explorar o código

Fix BindingEvaluator.ClearDataContext (#18964)

* Add failing test for BindingEvaluator.ClearDataContext

* Fix BindingEvaluator.ClearDataContext
Julien Lebosquain hai 4 meses
pai
achega
337f004786

+ 1 - 1
src/Avalonia.Controls/Utils/BindingEvaluator.cs

@@ -39,7 +39,7 @@ internal sealed class BindingEvaluator<T> : StyledElement, IDisposable
     }
 
     public void ClearDataContext()
-        => DataContext = this;
+        => DataContext = null;
 
     public void Dispose()
     {

+ 21 - 0
tests/Avalonia.Controls.UnitTests/Utils/BindingEvaluatorTests.cs

@@ -0,0 +1,21 @@
+#nullable enable
+
+using Avalonia.Controls.Utils;
+using Avalonia.UnitTests;
+using Xunit;
+
+namespace Avalonia.Controls.UnitTests.Utils;
+
+public class BindingEvaluatorTests : ScopedTestBase
+{
+    [Fact]
+    public void ClearDataContext_Sets_DataContext_To_Null()
+    {
+        var evaluator = new BindingEvaluator<string?>();
+        evaluator.Evaluate("foo");
+        Assert.Equal("foo", evaluator.DataContext);
+
+        evaluator.ClearDataContext();
+        Assert.Null(evaluator.DataContext);
+    }
+}