2016-01-19 2 views
0

У меня есть простой WPF приложение с ListView.Несколько событий с перетаскиванием внутри моего ListView

я добавил возможность добавлять файлы в мой ListView через Drag:

ListView lv; 

private void lv_Drop(object sender, DragEventArgs e) 
{ 
    e.Effects = DragDropEffects.All; 
} 

private void lv_DragEnter(object sender, DragEventArgs e) 
{ 
    try 
    { 
     string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); 
     FileAttributes attr = File.GetAttributes(files[0]); 
     AddFiles(files); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message, "Error"); 
    } 
} 

private void AddFiles(string[] files) 
{ 
    // Add the files into my `ListView`. 
} 

Проблема в том, что после того, как Drag один файл в моем ListView инициировать событие более чем в несколько раз, так что одни и те же файлы, добавленные в список несколько раз. Что может случиться?

ответ

0

Нельзя использовать событие DragEnter. Это событие «Происходит, когда объект перетаскивается в границы элемента управления». См. here.

Что вы ищете, это DragDrop-Event, которое можно найти here.

+0

В моем ListView нет события DragDrop. –

+0

Хорошо, посмотрите на это: https://fxmax.wordpress.com/2010/10/05/wpf/ вашему списку нужно атрибут drop, на котором вы связываете метод обработки события – FKutsche

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