0

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

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

4

2 回答 2

0

如果您需要拖放到 ListView 或 GridView,请在 DataTemplate 上为实际项目触发 Drop 事件,而不是整个列表。然后你就可以知道它落在了哪个项目上。

于 2013-03-22T23:30:15.073 回答
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;
于 2013-01-06T09:09:21.017 回答