Суть проблемы: при вызове NavigationServices.Navigate() из класса, принадлежащего какой-либо xaml-вьюхе, навигейт работает, а при вызове из какого-либо вспомогательного класса — почему-то нет.
Например:
страница MainPage.xaml, класс MainPage.xaml.cs, метод
NavigationServices.Navigate( new Uri("/listItems", UriKind.Relative/Absolute) )
Работает.
Так же существует класс JSON-RPC, который служит для реализации общения с сервером. Вот если в нем вызывать Navigate(), то функция всегда возвращает «FileNotFound».
Пример функции:
public void processResponce(item Response)
{
try
{
var token = Response.result.token;
this.setToken("&token=" + token);
Debug.WriteLine(this.apiUrl);
(Application.Current.RootVisual as PhoneApplicationFrame).Navigate(new Uri("/listItems", UriKind.Relative));
}
catch
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
var messageFromServer = Response.error.message;
MessageBox.Show(messageFromServer);
Debug.WriteLine(messageFromServer);
});
}
}
Не работает.
На девятой строке этой функции выдается эксепшн о несуществющем файле.
В данном примере используется UriMapping, поэтому Uri такой. Пробовал также указывать полный путь — не помогает.
Быть может существуют какие-то ограничения, о которых мне ничего не известно?