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

試したコードはメインフレームではないため機能しません。メインフレーム参照を残りのコードに公開して、外部のビューコードの背後に移動できるようにする必要があります。単純なものを作成する場合は、メインフレームインスタンスを公開する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 に答える