/ / DoDragDrop (), където се придобиват данни asynch - .net, winforms, winapi, drag-and-drop

DoDragDrop (), където се събират данни asynch - .net, winforms, winapi, drag-and-drop

Приложението ми е интелигентен клиент, използващ услуга WCF. Имам ListView, където елементите са имена на файлове. Данните за файловете се съхраняват от сървъра.

Когато потребителят плъзне елемент от списъка, данните савсе още не на клиента. Вместо да изтеглям данните отпред на събитието ItemDrag, искам да изтегля данните от сървъра само когато елементът е отпаднат (в MouseUp в Windows Explorer).

Има ли начин да внедрите AsyncDataObject (IDataObject) и да го предадете на Control.DoDragDrop ()? Или има ли друг начин да постигна това поведение?

Thaks

Отговори:

2 за отговор № 1

Задейства се събитие от събитието отпадането след потвърждаване на отпадането, което ще продължи и ще задейства заявка, която ще се обади обратно, за да актуализира потребителския интерфейс с новите данни.

Това ще изисква индикатор за зареждане непосредствено след качването, за да се обезсили текущата област, в която се натрупват данните.


-1 за отговор № 2

Това, което правите, е плъзгане на виртуално съдържание в Explorer. Ето един пример в управлявания код. Ето друг, В първия пример ще замените GetFileContents с версия, която изтегли данните.