| 
					
				 | 
			
			
				@@ -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(":")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 |