2013-11-18 3 views
0

Как запустить операцию перетаскивания из WPF ListView?Перетащите элемент из списка ListView

Я не могу найти, как поймать ListViewItem для перетаскивания из обработчика события. Я попытался подписаться вышеупомянутое событие Tunneling:

Private Sub MyListView_PreviewMouseLeftButtonDown(sender As System.Object, e As System.Windows.Input.MouseButtonEventArgs) 
    Dim lstview As ListView = CType(sender, ListView) 
    If lstview.SelectedItem IsNot Nothing Then 
     DragDrop.DoDragDrop(lstview, lstview.SelectedItem, DragDropEffects.Move) 
    End If 
End Sub 

... но, как и следовало ожидать, ListViewItem еще не установлен, когда это событие обрабатывается здесь и не всегда ничего.

Обращение с MouseDown в ListView не будет работать, так как это не срабатывает при нажатии на ListViewItem.

Как получить элемент ListView, который нужно перетащить? Он должен поддерживать перетаскивание нескольких элементов ListViewItems.

ответ

1

Вы можете начать операцию перетаскивания из обработчика событий SelectionChanged:

Private Sub ListBox_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) 

    Dim selectedItems As List(Of YourDataType) = 
     e.AddedItems.OfType(Of YourDataType)().ToList() 
    DragDrop.DoDragDrop(...) 

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