punker76 / gong-wpf-dragdrop

The GongSolutions.WPF.DragDrop library is a drag'n'drop framework for WPF
BSD 3-Clause "New" or "Revised" License
2.25k stars 392 forks source link

Drag action gets incorrect item object type in ItemsControl collection #477

Open I4-PJ opened 8 months ago

I4-PJ commented 8 months ago

Describe the bug When using ItemsControl with variety of item underlying types, the drag behaves incorrectly. The item type is evaluated incorrectly, thus drag won't work.

To Reproduce Steps to reproduce the behavior: Make ItemsSource element with binding to collection allowing different class types in that collection Add those different class type items to the collection

Expected behavior Drag action gets underlying collection type accordingly

Snímek obrazovky 2023-11-01 164255

The issue seems at ItemsControlExtensions.cs and its public static Type GetItemContainerType(this ItemsControl itemsControl, out bool isItemContainer, DependencyObject child) method when item type is not identified correctly

I did a small workaround without larger method change:

Added new method to find appropriate item index by any item in VisualTree and changed slightly a process handling ItemsSource object. ItemsControlExtensions.zip

punker76 commented 8 months ago

@I4-PJ Can you maybe provide a full sample for this as repo on GitHub?

I4-PJ commented 8 months ago

See attached a simple project. When added red and green items, drag works incorrectly. WpfApp1.zip