2010-09-24 2 views
1

У меня есть страницы навигации Silverlight (с NavigationCacheMode = "Обязательно"). Когда я обычно перехожу к этим страницам (с помощью щелчков мыши), страницы загружаются как ожидалось (они создаются только один раз из-за атрибута кеша).Проблемы с Silverlight Navigation Страница + window.location.hash

Однако, мне нужно обновить URL-адрес в адресной строке браузера. Когда я обновляю это через javascript («window.location.hash = # ...»), адрес и страница отображаются, но страница воссоздается, что вызывает другие проблемы.

В частности, проблема заключается в том, что на странице есть Prism.regions, определенные в xaml. Таким образом, он вызывает ошибку, жалуясь на регион, который уже зарегистрирован.

Кто-нибудь пробовал что-то похожее на это? Я не думаю, что есть способ обновить URL-адрес в адресной строке, если браузер не перейдет к нему. Обратите внимание, что URL-адрес, который я пытаюсь обновить, включает в себя параметры строки запроса, которые не являются непосредственно «известными» каркасом навигации silverlight.

Последнее, что я сделал, это зарегистрировать все уникальные Urls с каркасом навигации.

ответ

0

Я нашел хак. просто отмените событие frame_navigating, когда он обновляется вручную. прекрасно работает.