/ / DoDragDrop () gdzie dane są gromadzone asynch - .net, winforms, winapi, drag-and-drop

DoDragDrop () gdzie dane są gromadzone asynch - .net, winforms, winapi, drag-and-drop

Moja aplikacja to inteligentny klient korzystający z usługi WCF. Mam ListView, gdzie elementy są nazwami plików. Dane plików są przechowywane po stronie serwera.

Kiedy użytkownik przeciąga element z listy, dane sąjeszcze nie po stronie klienta. Zamiast pobierać dane z góry w zdarzeniu ItemDrag, chcę pobrać dane z serwera tylko wtedy, gdy element zostanie upuszczony (w MouseUp w Eksploratorze Windows).

Czy istnieje sposób wdrożenia obiektu AsyncDataObject (IDataObject) i przekazania go do metody Control.DoDragDrop ()? Czy jest jakiś inny sposób, w jaki mogę osiągnąć to zachowanie?

Thaks

Odpowiedzi:

2 dla odpowiedzi № 1

Uruchomienie zdarzenia po zdarzeniu Drop po zatwierdzeniu upuszczenia, które będzie kontynuowane, i odpalenie zapytania, które oddzwoni, aby zaktualizować interfejs z nowymi danymi.

Będzie to wymagało wskaźnika ładowania bezpośrednio po upuszczeniu, aby unieważnić bieżący obszar, do którego dane są wykorzystywane.


-1 dla odpowiedzi № 2

To, co robisz, polega na przeciągnięciu wirtualnej zawartości do Eksploratora. Oto przykład w zarządzanym kodzie. Tutaj jest inny. W pierwszym przykładzie zastąpisz ich GetFileContents wersją, która pobrała dane.