|
|
@@ -1,6 +1,5 @@
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
-using Avalonia.Controls;
|
|
|
using Avalonia.Styling.Activators;
|
|
|
using Avalonia.Utilities;
|
|
|
|
|
|
@@ -15,7 +14,7 @@ namespace Avalonia.Styling
|
|
|
internal class TypeNameAndClassSelector : Selector
|
|
|
{
|
|
|
private readonly Selector? _previous;
|
|
|
- private readonly Lazy<List<string>> _classes = new Lazy<List<string>>(() => new List<string>());
|
|
|
+ private List<string>? _classes;
|
|
|
private Type? _targetType;
|
|
|
private string? _selectorString;
|
|
|
|
|
|
@@ -81,7 +80,7 @@ namespace Avalonia.Styling
|
|
|
/// <summary>
|
|
|
/// The style classes which the selector matches.
|
|
|
/// </summary>
|
|
|
- public IList<string> Classes => _classes.Value;
|
|
|
+ public IList<string> Classes => _classes ??= new();
|
|
|
|
|
|
/// <inheritdoc/>
|
|
|
public override string ToString(Style? owner)
|
|
|
@@ -122,16 +121,16 @@ namespace Avalonia.Styling
|
|
|
return SelectorMatch.NeverThisInstance;
|
|
|
}
|
|
|
|
|
|
- if (_classes.IsValueCreated && _classes.Value.Count > 0)
|
|
|
+ if (_classes is { Count: > 0 })
|
|
|
{
|
|
|
if (subscribe)
|
|
|
{
|
|
|
- var observable = new StyleClassActivator((Classes)control.Classes, _classes.Value);
|
|
|
+ var observable = new StyleClassActivator(control.Classes, _classes);
|
|
|
|
|
|
return new SelectorMatch(observable);
|
|
|
}
|
|
|
|
|
|
- if (!StyleClassActivator.AreClassesMatching(control.Classes, Classes))
|
|
|
+ if (!StyleClassActivator.AreClassesMatching(control.Classes, _classes))
|
|
|
{
|
|
|
return SelectorMatch.NeverThisInstance;
|
|
|
}
|
|
|
@@ -172,9 +171,9 @@ namespace Avalonia.Styling
|
|
|
builder.Append(Name);
|
|
|
}
|
|
|
|
|
|
- if (_classes.IsValueCreated && _classes.Value.Count > 0)
|
|
|
+ if (_classes is { Count: > 0 })
|
|
|
{
|
|
|
- foreach (var c in Classes)
|
|
|
+ foreach (var c in _classes)
|
|
|
{
|
|
|
if (!c.StartsWith(":"))
|
|
|
{
|