c# silverlight silverlight-3.0 navigation

C#Silverlight 3-Navega programáticamente entre páginas?



silverlight-3.0 navigation (5)

¿Has probado el NavigationService?

this.NavigationService.Navigate (new Uri ("Detalles.xaml", UriKind.Relativo));

Supongamos que tengo una aplicación C # Silverlight 3 con varias páginas. La primera página se llama Inicio y la segunda página se llama Detalles. La única forma de navegar a los detalles es mediante programación. ¡¿Cómo hago esto?! Busqué por todas partes la respuesta y todo lo que encontré son implementaciones de xaml uri mapper ...

Ayuda muy apreciada


do#:

this.navContent.Navigate(new Uri("Welcome", UriKind.Relative));

XAML:

<navigation:Frame x:Name="navContent" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Source="Welcome"> <navigation:Frame.UriMapper> <uriMapper:UriMapper> <uriMapper:UriMapping Uri="Welcome" MappedUri="/Views/Welcome.xaml" /> <uriMapper:UriMapping Uri="Profile" MappedUri="/Views/Profile.xaml" /> <uriMapper:UriMapping Uri="Details/{id}" MappedUri="/Views/Details.xaml?photoid={id}" /> </uriMapper:UriMapper> </navigation:Frame.UriMapper> </navigation:Frame>

Incluso su página de "detalles" debe ser mapeada (a pesar de lo que ha dicho).


C # App.Current.Host.NavigationState = "/ Bienvenido";

XAML


Intenta usar esto. Esto funcionó para mí.

((System.Windows.Controls.Frame) (this.Parent)). Navigate (nuevo Uri ("/ Importar", UriKind.Relativo));


La mejor solución es:

Agregue este código a su App.xaml.cs:

private static Grid root; private void Application_Startup(object sender, StartupEventArgs e) { root = new Grid(); root.Children.Add(new MainPage()); this.RootVisual = root; } public static void Navigate(UserControl newPage) { UserControl oldPage = root.Children[0] as UserControl; root.Children.Add(newPage); root.Children.Remove(oldPage); }

Y luego, para navegar entre páginas, solo tendrá que llamar:

App.Navigate(new OtherSamplePage());