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.31k stars 405 forks source link

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

Open I4-PJ opened 1 year ago

I4-PJ commented 1 year 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 1 year ago

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

I4-PJ commented 1 year ago

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

WHYBBE commented 1 month ago

I want to know if this problem has been solved and what is the solution, thank you!

WHYBBE commented 1 month ago

The Type obtained by this line of code is incorrect, in his case (WpfApp1.zip).