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 № 1Uruchomienie 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.