Browse Source

Don't throw when a BringIntoView received from non-descendent.

The event can come from a child `Popup`.

Fixes #4176.
pull/4177/head
Steven Kirk 6 years ago
parent
commit
5f77d26c42
  1. 7
      src/Avalonia.Controls/Repeater/ViewportManager.cs

7
src/Avalonia.Controls/Repeater/ViewportManager.cs

@ -340,6 +340,11 @@ namespace Avalonia.Controls
// Note that the element being brought into view could be a descendant.
var targetChild = GetImmediateChildOfRepeater((IControl)args.TargetObject);
if (targetChild is null)
{
return;
}
// Make sure that only the target child can be the anchor during the bring into view operation.
foreach (var child in _owner.Children)
{
@ -373,7 +378,7 @@ namespace Avalonia.Controls
if (parent == null)
{
throw new InvalidOperationException("OnBringIntoViewRequested called with args.target element not under the ItemsRepeater that recieved the call");
return null;
}
return targetChild;

Loading…
Cancel
Save