Browse Source

prevent so with ResourceInclude and StyleInclude.

pull/4007/head
Dan Walmsley 6 years ago
parent
commit
55200b7080
  1. 4
      src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/ResourceInclude.cs
  2. 5
      src/Markup/Avalonia.Markup.Xaml/Styling/StyleInclude.cs

4
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;
/// <summary>
/// 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);
}

5
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;
/// <summary>
/// Initializes a new instance of the <see cref="StyleInclude"/> 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 };

Loading…
Cancel
Save