2

如何从自定义类内部的代码导航到页面。例如,假设我的 MainPage.xaml.cs 中有以下代码:

private void DoSomething(object sender, RoutedEventArgs e)
{
   var work = new Work();
   work.doMore();
}

在这堂课中,我希望导航实际发生在哪里:

public class Work
{
   public void DoMore()
   {
      // this is what I've tried, but doesn't work
      var myFrame = new Frame();
      myFrame.Navigate(typeof(HomePage));
   }
}
4

1 回答 1

3

您尝试的代码不起作用,因为不是主框架,您应该将 MainFrame 引用发布到您的代码的其余部分,以便您可以在后面的外部视图代码中导航。如果您正在做一些简单的事情,我建议在发布主框架实例的 App 类上放置一个静态属性。

编辑:一些代码

On App.xaml.cs
      public static Frame MainFrame{get;private set;}

      protected override void OnLaunched(LaunchActivatedEventArgs args)
            {
                Frame rootFrame = Window.Current.Content as Frame;
                MainFrame = rootFrame;
(....)
            }
Usage:
       App.MainFrame.Navigate(...);
于 2013-01-25T22:04:24.630 回答