2010-09-03 7 views
1

J'ai une application Silverlight 4 utilisant Prism 2.2 et j'ai quelques modules que je charge à la demande en les définissant comme ondemand dans le catalogue du module (via un fichier xaml) puis en utilisant ModuleManager pour demander le téléchargement du moduleAfficher l'indicateur de progression pendant le téléchargement Modules Prism ondemand

Existe-t-il un mécanisme dans Prism pour déterminer quand le téléchargement du module est terminé et télécharger les événements de progression?

Il y avait un fil sur le site CodePlex prisme mais aucune des suggestions semblait se dérouler pour les gens ayant la discussion

http://compositewpf.codeplex.com/Thread/View.aspx?ThreadId=47957

grâce Michael

+0

une solution possible que j'ai trouvé ici - http://wildermuth.com/2009/07/20/Prism_s_Plugin_Architecture - il implique de sous-classer le XapModuleTypeLoader et de surcharger la méthode CustomFileLoader.CreateDownloader() et de renvoyer le ModuleTypeLoader personnalisé - qui pourrait déclencher le prisme événements pour informer le reste de l'application - en regardant ce plus proche – MIantosca

Répondre

0

Il se trouve que la solution fourni dans la discussion de prisme sur codéplex a travaillé comme un charme

http://compositewpf.codeplex.com/Thread/View.aspx?ThreadId=47957

J'ai créé un fichier FileDownloader personnalisé appelé FileDownloaderWithProgress. Je voulais sous-classer l'existant dans Prism mais le WebClient qui déclenche l'événement DownloadProgressChanged était privé. J'ai donc dû créer le mien en implémentant IFileDownloader.

Dans le gestionnaire d'événements DownloadProgressChanged de la classe FileDownloaderWithProgress, je publie un événement Prism qui inclut le% complete et le nom du module qui a été téléchargé.