Browse Source

Remove sanity check from SetParent.

In the case of #3708, the sanity check fails because the parent call to `SetParent` hasn't yet completed - it's the setting of `InheritanceParent` on the parent that causes the child to get attached.
pull/3719/head
Steven Kirk 6 years ago
parent
commit
18d2238b91
  1. 14
      src/Avalonia.Styling/StyledElement.cs

14
src/Avalonia.Styling/StyledElement.cs

@ -453,18 +453,14 @@ namespace Avalonia
NotifyResourcesChanged(new ResourcesChangedEventArgs());
if (Parent is ILogicalRoot || Parent?.IsAttachedToLogicalTree == true || this is ILogicalRoot)
{
var newRoot = FindLogicalRoot(this);
if (newRoot == null)
{
throw new AvaloniaInternalException("Parent is attached to logical tree but cannot find root.");
}
var newRoot = FindLogicalRoot(this);
if (newRoot is object)
{
var e = new LogicalTreeAttachmentEventArgs(newRoot, this, parent);
OnAttachedToLogicalTreeCore(e);
}
#nullable disable
RaisePropertyChanged(
ParentProperty,
@ -618,7 +614,7 @@ namespace Avalonia
}
}
private static ILogicalRoot? FindLogicalRoot(IStyleHost e)
private static ILogicalRoot? FindLogicalRoot(IStyleHost? e)
{
while (e != null)
{

Loading…
Cancel
Save