diff --git a/src/Avalonia.Controls/Utils/BindingEvaluator.cs b/src/Avalonia.Controls/Utils/BindingEvaluator.cs index c67799eae5..00d9a71513 100644 --- a/src/Avalonia.Controls/Utils/BindingEvaluator.cs +++ b/src/Avalonia.Controls/Utils/BindingEvaluator.cs @@ -39,7 +39,7 @@ internal sealed class BindingEvaluator : StyledElement, IDisposable } public void ClearDataContext() - => DataContext = this; + => DataContext = null; public void Dispose() { diff --git a/tests/Avalonia.Controls.UnitTests/Utils/BindingEvaluatorTests.cs b/tests/Avalonia.Controls.UnitTests/Utils/BindingEvaluatorTests.cs new file mode 100644 index 0000000000..41fb225353 --- /dev/null +++ b/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(); + evaluator.Evaluate("foo"); + Assert.Equal("foo", evaluator.DataContext); + + evaluator.ClearDataContext(); + Assert.Null(evaluator.DataContext); + } +}