|
|
@@ -12,7 +12,7 @@ namespace Avalonia.Controls.Documents
|
|
|
[WhitespaceSignificantCollection]
|
|
|
public class InlineCollection : AvaloniaList<Inline>
|
|
|
{
|
|
|
- private ILogical? _parent;
|
|
|
+ private IAvaloniaList<ILogical>? _parent;
|
|
|
private IInlineHost? _inlineHost;
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -24,28 +24,28 @@ namespace Avalonia.Controls.Documents
|
|
|
|
|
|
this.ForEachItem(
|
|
|
x =>
|
|
|
- {
|
|
|
- ((ISetLogicalParent)x).SetParent(Parent);
|
|
|
+ {
|
|
|
x.InlineHost = InlineHost;
|
|
|
+ Parent?.Add(x);
|
|
|
Invalidate();
|
|
|
},
|
|
|
x =>
|
|
|
{
|
|
|
- ((ISetLogicalParent)x).SetParent(null);
|
|
|
+ Parent?.Remove(x);
|
|
|
x.InlineHost = InlineHost;
|
|
|
Invalidate();
|
|
|
},
|
|
|
() => throw new NotSupportedException());
|
|
|
}
|
|
|
|
|
|
- internal ILogical? Parent
|
|
|
+ internal IAvaloniaList<ILogical>? Parent
|
|
|
{
|
|
|
get => _parent;
|
|
|
set
|
|
|
{
|
|
|
_parent = value;
|
|
|
|
|
|
- OnParentChanged(value);
|
|
|
+ OnParentChanged(_parent, value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -157,20 +157,21 @@ namespace Avalonia.Controls.Documents
|
|
|
Invalidated?.Invoke(this, EventArgs.Empty);
|
|
|
}
|
|
|
|
|
|
- private void OnParentChanged(ILogical? parent)
|
|
|
+ private void OnParentChanged(IAvaloniaList<ILogical>? oldParent, IAvaloniaList<ILogical>? newParent)
|
|
|
{
|
|
|
foreach (var child in this)
|
|
|
{
|
|
|
- var oldParent = child.Parent;
|
|
|
-
|
|
|
- if (oldParent != parent)
|
|
|
+ if (oldParent != newParent)
|
|
|
{
|
|
|
if (oldParent != null)
|
|
|
{
|
|
|
- ((ISetLogicalParent)child).SetParent(null);
|
|
|
+ oldParent.Remove(child);
|
|
|
}
|
|
|
|
|
|
- ((ISetLogicalParent)child).SetParent(parent);
|
|
|
+ if(newParent != null)
|
|
|
+ {
|
|
|
+ newParent.Add(child);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|