diff --git a/src/Editor/Ghost.Editor/View/Controls/Docking/DockContainer.cs b/src/Editor/Ghost.Editor/View/Controls/Docking/DockContainer.cs index 849556a..9dabd59 100644 --- a/src/Editor/Ghost.Editor/View/Controls/Docking/DockContainer.cs +++ b/src/Editor/Ghost.Editor/View/Controls/Docking/DockContainer.cs @@ -19,7 +19,7 @@ public abstract class DockContainer : DockModule OnChildrenUpdated(); } - public void AddChild(DockModule module) + public virtual void AddChild(DockModule module) { ArgumentNullException.ThrowIfNull(module); @@ -45,7 +45,7 @@ public abstract class DockContainer : DockModule _children.Add(module); } - public void RemoveChild(DockModule module) + public virtual void RemoveChild(DockModule module) { ArgumentNullException.ThrowIfNull(module); diff --git a/src/Editor/Ghost.Editor/View/Controls/Docking/DockGroup.cs b/src/Editor/Ghost.Editor/View/Controls/Docking/DockGroup.cs index 6d4d7c9..879253f 100644 --- a/src/Editor/Ghost.Editor/View/Controls/Docking/DockGroup.cs +++ b/src/Editor/Ghost.Editor/View/Controls/Docking/DockGroup.cs @@ -1,6 +1,5 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; - using Microsoft.UI.Xaml.Data; namespace Ghost.Editor.View.Controls.Docking; @@ -16,6 +15,16 @@ public partial class DockGroup : DockContainer DefaultStyleKey = typeof(DockGroup); } + public override void AddChild(DockModule module) + { + if (module is not DockDocument) + { + throw new ArgumentException($"{nameof(DockGroup)} only accepts {nameof(DockDocument)} children.", nameof(module)); + } + + base.AddChild(module); + } + protected override void OnApplyTemplate() { base.OnApplyTemplate();