我正在开发一个 XAML/C# WinRT 应用程序。该应用程序有一个带有分组源的 Gridview。我正在 Gridview 上实现手动拖放功能(因为 MS 以他们的智慧决定跳过分组 Gridview 中的关键功能)。
我面临的一个问题是试图获得对被拖动控件的引用。在 DragItemsStarting 事件中,我们有:
private void GVDragItemsStarting(object sender, DragItemsStartingEventArgs e)
{
var item = e.Items.FirstOrDefault();
if (item == null)
return;
e.Data.Properties.Add("item", item);
}
但是这里的sender只是GridView,不是被拖拽的控件,e.Items[0]指向的是底层数据模型对象,并不是实际的控件。有没有办法在拖放发生之前将实际控件拖动到拖动事件链中的某个位置?我正在考虑查看 PointerPressed 事件,但拖动时甚至没有触发。
这似乎很简单,我认为我缺少一些明显的东西。
谢谢你的帮助。