2011-04-20 3 views
3

Может быть, мой вопрос nooby, но я не мог найти ответ ...WPF перетаскивание и типы данных

У меня есть падение приложение перетащить & в WPF ... я встроенный интерфейс и я хочу добавить функциональность ...

Что мне нужно сделать, это когда я бросаю элемент в моей области дизайнера, , чтобы получить тип сброшенного объекта и добавить его в определенную структуру/список или что-то еще ...

как я могу это сделать? Спасибо! г.

ответ

7

Предполагая, что вы контролируете начало сопротивления (вы не перетаскивание из другого приложения), это до вас, что типа. Просто сравните исходный код и код назначения. При перетаскивании (как правило, обработчик MouseMove или MouseDown):

 var dragData = new DataObject(typeof(JobViewModel), job); 
     DragDrop.DoDragDrop(element, dragData, DragDropEffects.Move); 

Начинается перетаскивание. А потом в капле (это звучит, как вы получили это далеко):

 var dataObj = e.Data as DataObject; 
     var dragged = dataObj.GetData(typeof(JobViewModel)) as JobViewModel; 

Вы также можете использовать строку вместо типа.

1

Просто установите для свойства AllowDrop элемента управления значение true. И реализовать на нем событие Drop; вы можете получить доступ к информации о выбросах в аргументе события.

Для части GetData вы можете использовать это для получения конкретных типов данных. Вот падение файла, например:

string[] fileNames = (string[])e.Data.GetData(DataFormats.FileDrop, true); 

Спасибо,

+0

Я зашел так далеко! :) Моя проблема заключается в том, как получить тип данных в 'OnDrop (DragEventArgs e)' ... с помощью getData? с каким типом? Если я использую тип моего объекта, я получаю null ... Спасибо за вашу помощь !!! – geo

+0

Я обновил свой ответ, надеюсь, что это поможет. – Howard

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