Приложение для навигации - принудительно запускает страницу при запуске - PullRequest
0 голосов
/ 07 октября 2011

У меня есть навигационное приложение silverlight, где я загружаю и инициализирую множество вещей в загрузке MainPage.aspx.

Все страницы (просмотры) зависят от загрузки этих данных.

Но очень часто мои пользователи добавляют ярлык Интернета на свой рабочий стол для моего приложения. но ссылка часто указывает на определенную страницу, например:

http://myServer/MyApp/default.aspx#/TheView

Я хочу заставить пользователей перейти к представлению «По умолчанию» (и игнорировать параметр # / view) при запуске приложения.

Как лучше всего это сделать?

1 Ответ

1 голос
/ 07 октября 2011

Не думаю, что это хорошая идея - избегать ссылок.Вы должны создать приложение таким образом, чтобы это не было проблемой.

Например, вы можете отправить сообщение из вашей основной логики, когда все загружено, и до этого сообщения вы можете отключить соответствующий пользовательский интерфейс (при ожидании данных).Messenger (или EventAggregator в Prism) - это шаблон издатель-подписчик для обеспечения связи между компонентами без ссылки друг на друга.Если вы еще этого не знаете, взгляните на MVVMLight Messenger или Prism EventAggregator

Но если первый вариант вам не подходит, вы можете сыгратьс помощью свойства JournalOwnership элемента управления Frame:

http://msdn.microsoft.com/en-us/library/system.windows.controls.frame.journalownership(v=vs.95).aspx

http://msdn.microsoft.com/en-us/library/system.windows.navigation.journalownership(v=vs.95).aspx

OwnsJournal - это ваша ценность, посколькуне интегрируется с журналом браузера, и URL остается оригиналом, поэтому ваши пользователи не могут добавить в закладки «подстраницу».

Вы также можете реализовать свой собственный механизм журнала.

Другой :), но довольно уродливый вариант, если вы отслеживаете загрузку первой страницы (например, в событиях OnNavigatedTo Page) и при самом первом запросе вы вручную переходите на главную страницу.Или в App.xaml.cs, когда приложение запускается, вы пересылаете запрос страницы.

Но я рекомендую первый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...