C#Silverlight 3-以编程方式在页面之间导航?

C#Silverlight 3-以编程方式在页面之间导航?,c#,silverlight,silverlight-3.0,navigation,C#,Silverlight,Silverlight 3.0,Navigation,假设我有一个有很多页面的C#Silverlight 3应用程序。第一个页面称为主页,第二个页面称为详细信息。导航到详细信息的唯一方法是通过编程。我该怎么做?!到处寻找答案,我找到的都是xaml uri映射器实现 非常感谢您的帮助您尝试过导航服务吗 NavigationService.Navigate(新Uri(“Details.xaml”,UriKind.Relative)) c#: XAML: 即使你的“详细信息”页面也应该被映射(不管你怎么说)。C# App.Current.Host.N

假设我有一个有很多页面的C#Silverlight 3应用程序。第一个页面称为主页,第二个页面称为详细信息。导航到详细信息的唯一方法是通过编程。我该怎么做?!到处寻找答案,我找到的都是xaml uri映射器实现


非常感谢您的帮助

您尝试过导航服务吗

NavigationService.Navigate(新Uri(“Details.xaml”,UriKind.Relative))

c#:

XAML:


即使你的“详细信息”页面也应该被映射(不管你怎么说)。

C# App.Current.Host.NavigationState=“/Welcome”

XAML


尝试使用此选项。这对我有用

((System.Windows.Controls.Frame)(this.Parent)).Navigate(新Uri(“/Import”,UriKind.Relative))

最佳解决方案是:

将此代码添加到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);
}
然后,要在页面之间导航,您只需调用:

App.Navigate(new OtherSamplePage());

Silverlight的哪个版本?Silverlight 3………..在Silverlight URI中,是相对于XAP的。detailspage的Uri(如果它在项目的根目录中)应该是“newURI”(/Details.xaml),UriKind.Relative),我告诉你100%这不起作用。全新的Silverlight业务应用程序模板,尝试导航到任何页面都无法使用该方法。您是尝试在MVVM应用程序中从您的ViewModel进行导航,还是尝试从xaml.cs进行导航?如果可以,我一直在到处搜索此答案+3
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);
}
App.Navigate(new OtherSamplePage());