From 1427090c32bb4a2e261230f653b2bc4244c6a83e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 12 Jan 2024 14:23:03 +0100 Subject: [PATCH] Fix exception when closing color picker. And add tests. --- .../Data/DynamicResourceExpression.cs | 3 ++ .../DynamicResourceExtensionTests.cs | 28 +++++++++++++++++ .../Xaml/ControlThemeTests.cs | 30 +++++++++++++++++++ 3 files changed, 61 insertions(+) diff --git a/src/Markup/Avalonia.Markup.Xaml/Data/DynamicResourceExpression.cs b/src/Markup/Avalonia.Markup.Xaml/Data/DynamicResourceExpression.cs index 26c3e30f86..438c140395 100644 --- a/src/Markup/Avalonia.Markup.Xaml/Data/DynamicResourceExpression.cs +++ b/src/Markup/Avalonia.Markup.Xaml/Data/DynamicResourceExpression.cs @@ -86,6 +86,9 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions private void ActualThemeVariantChanged(object? sender, EventArgs e) { + if (!IsRunning) + return; + _themeVariant = ((IThemeVariantHost)sender!).ActualThemeVariant; PublishValue(); } diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs index 523b31e60a..9379f94edd 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/DynamicResourceExtensionTests.cs @@ -896,6 +896,34 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions Assert.DoesNotContain("foo", resourceProvider.RequestedResources); } + [Fact] + public void Can_Detach_Control_With_DynamicResource_ControlTheme_That_Contains_DynamicResource() + { + using var app = UnitTestApplication.Start(TestServices.StyledWindow); + var xaml = $@" + + + Blue + + + + + +