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 に答える