在列表中拖放,Windows 8应用程序?

时间:2013-01-06 07:30:04

标签: c# list xaml windows-8 drag-and-drop

有没有关于如何在窗口8 C#list(listview,listbox ...)中实现拖放的好例子/教程?

我想要的是一个可编辑的“Iphone-list”体验,我可以轻松地重新排列列表中的项目。但我主要找到WinJS的例子,我想为win 8

设一个c#例子

2 个答案:

答案 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,而不是整个列表。然后你可以告诉它被丢弃的项目。