在WinRT中,我正在尝试为我的可变大小的GridView实现自定义拖放处理程序。在DragItemsStarting处理程序中,我可以使用e.Items.FirstOrDefault()来拖动项目。
我只有一个GridView,所以该项目将被删除。如果它被删除在另一个项目上,我需要知道该项目是什么,以便我可以插入被拖动到该位置的项目。
我如何获得该项目? This线程提到使用GridView.ItemContainerGenerator.ContainerFromItem(item),但这似乎不起作用,我找不到Drop事件的任何好例子。
谢谢
答案 0 :(得分:0)
您可以处理OnDragOver和OnDrop事件,从事件参数获取指针位置,然后使用VisualTreeHelper.FindElementsInHostCoordinates获取指针下的所有元素,然后分析这些元素并找到正确的元素,然后才能使用ItemContainerGenerator获取项目.ContainerFromItem。 但是你需要更多,因为最终用户可以放到某个地方,那里没有任何物品。 您可以查看以下示例:http://www.codeproject.com/Articles/536519/Extending-GridView-with-Drag-and-Drop-for-Grouping