Приложението ми е интелигентен клиент, използващ услуга WCF. Имам ListView, където елементите са имена на файлове. Данните за файловете се съхраняват от сървъра.
Когато потребителят плъзне елемент от списъка, данните савсе още не на клиента. Вместо да изтеглям данните отпред на събитието ItemDrag, искам да изтегля данните от сървъра само когато елементът е отпаднат (в MouseUp в Windows Explorer).
Има ли начин да внедрите AsyncDataObject (IDataObject) и да го предадете на Control.DoDragDrop ()? Или има ли друг начин да постигна това поведение?
Thaks
Отговори:
2 за отговор № 1Задейства се събитие от събитието отпадането след потвърждаване на отпадането, което ще продължи и ще задейства заявка, която ще се обади обратно, за да актуализира потребителския интерфейс с новите данни.
Това ще изисква индикатор за зареждане непосредствено след качването, за да се обезсили текущата област, в която се натрупват данните.
-1 за отговор № 2
Това, което правите, е плъзгане на виртуално съдържание в Explorer. Ето един пример в управлявания код. Ето друг, В първия пример ще замените GetFileContents с версия, която изтегли данните.