【发布时间】:2016-06-03 01:38:08
【问题描述】:
我正在使用 gong-wpf 库通过在数据绑定列表框中拖放来重新排序项目:
<ListBox ItemsSource="{Binding Collection}"
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="True" />
是否有一个简单的解决方案可以让拖动的项目在拖放到新位置时保持其 IsSelected 值?不幸的是,每个拖放操作都会清除 listBox SelectedItem。
我已经考虑过实现 IDropTarget 接口,然后在放置处理程序中执行此操作。但在这种情况下,我必须自己完全实现重新排序逻辑。真的没有更简单的解决方案吗?
【问题讨论】:
-
如果你实现了 IDragHandler,gong-wpf 将使用 "DefaultDropTarget" 为你处理重新排序。投递成功后仍有回调。
-
对不起,我只在 libary 命名空间中找到了接口 IDragInfo、IDragSource、IDropInfo、IDropTarget。在哪里可以找到 IDragHandler?
-
我想我有一个非常旧的版本。它可能已重命名为 IDropTarget。
-
我已经尝试实现包含 DragOver(...) 和 Drop(...) 的 IDropTarget 接口。实现 DragOver(...) 没有问题,但是在 Drop(...) 中,我不知道自己编写重新排序逻辑的解决方法。此外,我尝试实现重新排序逻辑,但 dropInfo.InsertPosition 有时会为我提供错误的值。
标签: c# wpf drag-and-drop listbox