如何从列表视图中获取最后一项

时间:2012-06-08 08:45:38

标签: c# winforms listview drag-and-drop

我的问题是关于在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");
        }
}

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

1 个答案:

答案 0 :(得分:2)

试试这个:

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
}