diff --git a/src/Avalonia.Base/Styling/StyleBase.cs b/src/Avalonia.Base/Styling/StyleBase.cs index dbffcfb3ee..fc293f4bda 100644 --- a/src/Avalonia.Base/Styling/StyleBase.cs +++ b/src/Avalonia.Base/Styling/StyleBase.cs @@ -72,11 +72,24 @@ namespace Avalonia.Styling public void Add(SetterBase setter) => Setters.Add(setter); public void Add(IStyle style) => Children.Add(style); - void IAddChild.AddChild(object child) { } + void IAddChild.AddChild(object child) + { + switch (child) + { + case SetterBase setter: + Setters.Add(setter); + break; + case IStyle style: + Children.Add(style); + break; + default: + throw new InvalidOperationException($"Cannot add {child.GetType()} to a style."); + } + } - void IAddChild.AddChild(SetterBase setter) { } + void IAddChild.AddChild(SetterBase setter) => Setters.Add(setter); - void IAddChild.AddChild(IStyle style) { } + void IAddChild.AddChild(IStyle style) => Children.Add(style); public event EventHandler? OwnerChanged;