2010-09-24 7 views
1

J'ai des pages de navigation Silverlight (avec NavigationCacheMode = "Obligatoire"). Lorsque je navigue normalement vers ces pages (via des clics de souris), les pages sont chargées comme prévu (elles ne sont créées qu'une seule fois en raison de l'attribut de cache).Problèmes avec la page de navigation Silverlight + window.location.hash

Cependant, j'ai besoin de mettre à jour l'URL dans la barre d'adresse du navigateur. Lorsque je mets à jour ceci via javascript ("window.location.hash = # ...") l'adresse et la page sont affichées, MAIS la page est recréée - ce qui cause d'autres problèmes.

En particulier le problème que cela provoque est que la page a une Prism.regions définie dans le xaml. Il se produit donc une erreur en se plaignant d'une région déjà enregistrée.

Est-ce que quelqu'un a déjà essayé quelque chose de similaire? Je ne pense pas qu'il existe un moyen de mettre à jour l'url dans la barre d'adresse sans que le navigateur y navigue. Notez que l'URL que j'essaie de mettre à jour inclut des paramètres de chaîne de requête, qui ne sont pas directement "connus" par le cadre de navigation Silverlight.

Le dernier recours que je n'ai pas essayé est d'enregistrer toutes les URL uniques avec le cadre de navigation.

Répondre

0

J'ai trouvé un hack. Il suffit d'annuler l'événement frame_navigating lorsque l'URL est mise à jour manuellement. fonctionne très bien.

Questions connexes