Навигационная служба не имеет определенных конструкторов

Я использую Visual Studio Express 2012 для Windows Phone и создаю приложение для Windows Phone 7.1.

Я пытаюсь использовать NavigationService для перехода на другую страницу, но постоянно сталкиваюсь с проблемами.

Вот мой код:

private void GotoDetails(object _url)
    {
        var url = string.Format("/DetailsPage.xaml?url={0}", _url.ToString());
        NavigationService nav = new NavigationService();
        nav.Navigate(new Uri(url, UriKind.Relative));
    }

когда я пытаюсь создать это, я получаю «Тип« System.Windows.Navigation.NavigationService »не имеет определенных конструкторов» в строке NavigationService nav =.... .

Если я попытаюсь сделать просто NavigationService.Navigate(new Uri(url, UriKind.Relative)); затем я получаю сообщение об ошибке «Требуется ссылка на объект для нестатического поля, метода или свойства System.Windows.Navigation.NavigationService.Navigate(System.Uri)».

обновление: я пытаюсь использовать MVVM (впервые). Этот код находится в моей модели представления. Я не использую никаких фреймворков. Просто пытаюсь научиться этому с нуля.

Я искал intertubes, но не могу найти решение.

Любая помощь очень ценится.

Камаль


person Kamal    schedule 17.11.2012    source источник


Ответы (1)


ты внутри страницы? NavigationService — это свойство класса Page: http://msdn.microsoft.com/en-us/library/system.windows.controls.page.navigationservice(v=vs.92).aspx

person dotMorten    schedule 17.11.2012
comment
Я пытаюсь использовать MVVM (впервые). Этот код находится в моей модели представления. - person Kamal; 17.11.2012
comment
да, навигация не так уж удобна для mvvm. Я считаю это частью представления, поэтому обычно у меня нет этой проблемы. Но вы можете использовать это из модели представления (все еще не слишком красиво): var root = App.RootVisual as PhoneApplicationFrame; root.Navigate(новый Uri(/somepage.xaml, UriKind.Relative)); - person dotMorten; 18.11.2012
comment
Я также нашел этот пост полезным для создания службы навигации для использования с MVVM: windowsphonegeek.com/articles/ - person Kamal; 18.11.2012