Browse Source

Fixed invalid cast issue if source isn't visual

pull/4872/head
Yoh Deadfall 6 years ago
parent
commit
dad0c4d18a
  1. 10
      src/Avalonia.Controls/Primitives/SelectingItemsControl.cs

10
src/Avalonia.Controls/Primitives/SelectingItemsControl.cs

@ -356,17 +356,13 @@ namespace Avalonia.Controls.Primitives
/// <returns>The container or null if the event did not originate in a container.</returns> /// <returns>The container or null if the event did not originate in a container.</returns>
protected IControl? GetContainerFromEventSource(IInteractive eventSource) protected IControl? GetContainerFromEventSource(IInteractive eventSource)
{ {
var parent = (IVisual)eventSource; for (var current = eventSource as IVisual; current != null; current = current.VisualParent)
while (parent != null)
{ {
if (parent is IControl control && control.LogicalParent == this if (current is IControl control && control.LogicalParent == this &&
&& ItemContainerGenerator?.IndexFromContainer(control) != -1) ItemContainerGenerator?.IndexFromContainer(control) != -1)
{ {
return control; return control;
} }
parent = parent.VisualParent;
} }
return null; return null;

Loading…
Cancel
Save