punker76/gong-wpf-dragdrop

Drag action gets incorrect item object type in ItemsControl collection

Opened this issue · 2 comments

I4-PJ commented

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

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

I4-PJ commented

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