Взгляните на UriMapper
на главной странице. Финальный UriMapping
обычно будет уловом всего, что выглядит так: -
<uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
Вы заметите «/» в начале Uri, и соответствующая страница находится в папке «/ Views».
Используйте атрибут: -
NavigatUri="/myPage?mode=edit"
убедитесь, что ваша страница находится в папке Views.
Однако я почти уверен, что у вас это уже есть. Ваша настоящая проблема - ваша попытка получить доступ к NavigationContext
в исполнении конструктора страницы. Это не доступно в тот момент в жизненном цикле страниц. Вы не должны пытаться использовать его, пока не будет выполнено OnNavigatedTo
.
public partial class MyPage : Page
{
public MyPage()
{
InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string mode = null;
if (NavigationContext.QueryString.ContainsKey("mode"))
{
mode = NavigationContext.QueryString["mode"];
}
// Do stuff with mode.
}
}
Причина, по которой вы видите сообщение об ошибке «страница не найдена», заключается в том, что приложения Nav ErrorWindow
просто предполагают, что сбой при загрузке страницы произошел из-за того, что она не была найдена. То, что вы правильно закодировали свои страницы, вероятно, является разумным предположением.