Tomado de Exercise 1: Creating Windows Phone Applications with Microsoft Visual Studio 2010 Express for Windows Phone¿Cuál es la diferencia entre el método NavigationService.Navigate() y la propiedad PhoneApplicationFrame.Source?
Tarea 3: Paso 9
// navigate
this.NavigationService.Navigate(new Uri("/PuzzlePage.xaml", UriKind.Relative));
Nota:
La clase PhoneApplicationPage proporciona métodos y propiedades para navegar a las páginas a través de su propiedad NavigationService. Puede llamar al método Navigate del NavigationService y pasar el URI para la página como parámetro. También puede usar los métodos GoBack y GoForward para navegar hacia atrás o hacia adelante en el historial de navegación. El botón de retroceso de hardware también proporciona navegación hacia atrás dentro de una aplicación. El controlador de eventos que se muestra arriba usa NavigationService para ir a la página PuzzlePage.xaml.
Tarea 4: Paso 3
(RootVisual as Microsoft.Phone.Controls.PhoneApplicationFrame).Source =
new Uri("/ErrorPage.xaml", UriKind.Relative);
Nota:
...
Cada vez que se establece la propiedad de origen a un valor que es diferente del contenido que se muestra, el marco se desplaza a el nuevo contenido.
...
¿Cuáles son las diferencias y similitudes de ambas técnicas?
PhoneApplicationFrame.Source se hereda de Frame y, por lo tanto, no es específico de Windows Phone. No puedo probarlo ahora, pero sí creo que puede navegar a través de la pila de páginas incluso cuando usa la propiedad Fuente. Una diferencia entre el método Navigate y la propiedad Source es que no puede llamar a Navigate en una página que aún no se ha cargado, mientras que puede establecer la propiedad Source siempre que lo desee. –
"no puede llamar a Navigate en una página que aún no se ha cargado"? ¿Significa esto que no puedo navegar a una página que nunca antes haya sido navegada? Muy confuso. –