2012-06-08 2 views
0

Моя проблема заключается в обработке перетаскивания в ListView.Как получить последний элемент из списка?

Итак, я получаю выбранный ListViewItem.

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

Если я двигаю новый элемент с помощью перетаскивания & капли (например, из окна проводника), то ItemCollection равен нулю, потому что я не выбрать элемент в ListView.

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

Попробуйте это:

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 
} 
+0

благодаря это работает;) – David

Смежные вопросы