fix(docking): enforce DockDocument children in DockGroup and fix style

This commit is contained in:
2026-03-28 21:58:21 +09:00
parent 332a940993
commit 09576bb6e1
2 changed files with 12 additions and 3 deletions

View File

@@ -19,7 +19,7 @@ public abstract class DockContainer : DockModule
OnChildrenUpdated(); OnChildrenUpdated();
} }
public void AddChild(DockModule module) public virtual void AddChild(DockModule module)
{ {
ArgumentNullException.ThrowIfNull(module); ArgumentNullException.ThrowIfNull(module);
@@ -45,7 +45,7 @@ public abstract class DockContainer : DockModule
_children.Add(module); _children.Add(module);
} }
public void RemoveChild(DockModule module) public virtual void RemoveChild(DockModule module)
{ {
ArgumentNullException.ThrowIfNull(module); ArgumentNullException.ThrowIfNull(module);

View File

@@ -1,6 +1,5 @@
using Microsoft.UI.Xaml; using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Data; using Microsoft.UI.Xaml.Data;
namespace Ghost.Editor.View.Controls.Docking; namespace Ghost.Editor.View.Controls.Docking;
@@ -16,6 +15,16 @@ public partial class DockGroup : DockContainer
DefaultStyleKey = typeof(DockGroup); 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() protected override void OnApplyTemplate()
{ {
base.OnApplyTemplate(); base.OnApplyTemplate();