diff --git a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/ResourceInclude.cs b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/ResourceInclude.cs index 87e2ba3a2e..5f5c0211b8 100644 --- a/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/ResourceInclude.cs +++ b/src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/ResourceInclude.cs @@ -13,6 +13,7 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions { private Uri? _baseUri; private IResourceDictionary? _loaded; + private bool _isLoading; /// /// Gets the loaded resource dictionary. @@ -21,8 +22,9 @@ namespace Avalonia.Markup.Xaml.MarkupExtensions { get { - if (_loaded == null) + if (!_isLoading) { + _isLoading = true; var loader = new AvaloniaXamlLoader(); _loaded = (IResourceDictionary)loader.Load(Source, _baseUri); } diff --git a/src/Markup/Avalonia.Markup.Xaml/Styling/StyleInclude.cs b/src/Markup/Avalonia.Markup.Xaml/Styling/StyleInclude.cs index 2b39263ee9..6bffaaa804 100644 --- a/src/Markup/Avalonia.Markup.Xaml/Styling/StyleInclude.cs +++ b/src/Markup/Avalonia.Markup.Xaml/Styling/StyleInclude.cs @@ -14,6 +14,7 @@ namespace Avalonia.Markup.Xaml.Styling { private readonly Uri _baseUri; private IStyle[]? _loaded; + private bool _isLoading; /// /// Initializes a new instance of the class. @@ -47,8 +48,10 @@ namespace Avalonia.Markup.Xaml.Styling { get { - if (_loaded == null) + if (!_isLoading) { + _isLoading = true; + var loader = new AvaloniaXamlLoader(); var loaded = (IStyle)loader.Load(Source, _baseUri); _loaded = new[] { loaded };