有没有关于如何在窗口8 C#list(listview,listbox ...)中实现拖放的好例子/教程?
我想要的是一个可编辑的“Iphone-list”体验,我可以轻松地重新排列列表中的项目。但我主要找到WinJS的例子,我想为win 8
设一个c#例子答案 0 :(得分:0)
首先,您必须启用 AllowDragDrop 属性。
然后写下3个事件:
private void myList_ItemDrag(object sender, ItemDragEventArgs e)
{
DoDragDrop(e.Item, DragDropEffects.Link);
}
private void myList_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Link;
}
private void myList_DragDrop(object sender, DragEventArgs e)
{
// do whatever you need to reorder the list.
}
获取已删除项目的索引:
Point cp = myList.PointToClient(new Point(e.X, e.Y));
ListViewItem dragToItem = myList.GetItemAt(cp.X, cp.Y);
int dropIndex = dragToItem.Index;
答案 1 :(得分:0)
如果您需要放入ListView或GridView,请在DataTemplate上触发Drop事件以获取实际Item,而不是整个列表。然后你可以告诉它被丢弃的项目。