Skip to content

Instantly share code, notes, and snippets.

@digitaldias
Last active June 17, 2020 06:52
Show Gist options
  • Save digitaldias/85d33cb157774e8a158d9b6779f6e86a to your computer and use it in GitHub Desktop.
Save digitaldias/85d33cb157774e8a158d9b6779f6e86a to your computer and use it in GitHub Desktop.
THE LISTVIEW
<ListView Grid.Row="7"
Grid.ColumnSpan="2"
Background="Transparent"
BorderBrush="Transparent"
Foreground="Yellow"
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="True"
dd:DragDrop.DragAdornerTemplate="{StaticResource DragAdorner}"
ItemsSource="{Binding SelectedGroupMember.Loot}"
ItemTemplate="{StaticResource LootedItemTemplate}"
/>
The ITEMTEMPLATE
<Border Background="#333333" BorderBrush="DarkGray" BorderThickness="2" CornerRadius="10" Margin="2" dd:DragDrop.IsDropTarget="True" IsHitTestVisible="{Binding IsHitTestVisible}">
..tons of xaml
</Border
The DRAGOVER
public void DragOver(IDropInfo dropInfo)
{
var draggedItem = dropInfo.Data as LootViewModel;
var targetMember = dropInfo.TargetItem as GroupMemberViewModel;
if (draggedItem is { } && targetMember is { })
{
targetMember.IsHitTestVisible = false; // No DragLeave() or DragCancel event to catch!! EEP!
var sourceMember = GroupMembers.FirstOrDefault(m => m.Name.Equals(draggedItem.GroupMemberName));
dropInfo.DropTargetAdorner = DropTargetAdorners.Highlight;
dropInfo.Effects = DragDropEffects.Move;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment