1

我的问题是关于处理 ListView 中的拖放。

所以我得到了选定的 ListViewItem。

ListView.SelectedListViewItemCollection itemCollection = (ListView.SelectedListViewItemCollection)e.Data.GetData("System.Windows.Forms.ListView+SelectedListViewItemCollection");

如果我通过拖放(例如从 Windows 资源管理器)移动新元素,则 itemCollection 等于 null,因为我没有在列表视图中选择项目。

private void DragDropHandler(object sender, DragEventArgs e)
{
        ListView.SelectedListViewItemCollection itemCollection = (ListView.SelectedListViewItemCollection)e.Data.GetData("System.Windows.Forms.ListView+SelectedListViewItemCollection");

        if (itemCollection == null)
        {
            itemCollection = (ListView.SelectedListViewItemCollection)e.Data.GetData("System.Windows.Forms.ListView");
        }
}

对于这种情况,我会得到列表视图中的最后一个元素,我该怎么做?

4

1 回答 1

3

试试这个:

var r = Enumerable.Empty<ListViewItem>();

if(this.listView1.Items.Count > 0)
    r = this.listView1.Items.OfType<ListViewItem>();

var last = r.LastOrDefault();

if (last != null)
{
    // do your stuff
}
于 2012-06-08T09:02:07.890 回答