Проблемы с страницей навигации Silverlight + window.location.hash

У меня есть страницы навигации silverlight (с NavigationCacheMode = "Required"). Когда я обычно перехожу к этим страницам (щелчком мыши), страницы загружаются должным образом (они создаются только один раз из-за атрибута cache).

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

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

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

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


person AlvinfromDiaspar    schedule 24.09.2010    source источник


Ответы (1)


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

person AlvinfromDiaspar    schedule 24.09.2010