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

本文关键字:一项 最后 获取 列表 视图 | 更新日期: 2023-09-27 18:36:29

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

所以我得到了选定的列表视图项。

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

如果我通过拖放移动新元素(例如从窗口资源管理器),则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");
        }
}

在这种情况下,我将获得列表视图中的最后一个元素,我该怎么做?

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

试试这个:

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
}