2013-01-25 6 views
2

Comment naviguer vers une page à partir du code qui est à l'intérieur d'une classe personnalisée. Par exemple, disons que j'ai ce code dans mes MainPage.xaml.cs:WinRt navigation de la page

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

et dans cette classe est là où je voudrais la navigation effectivement lieu:

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

Répondre

3

Le code vous avez essayé ne fonctionne pas parce que n'est pas le cadre principal, vous devriez publier la référence MainFrame au reste de votre code afin que vous puissiez naviguer en dehors du code des vues derrière. Si vous créez quelque chose de simple, je recommande de placer une propriété statique sur la classe App publiant l'instance de l'image principale.

EDIT: Une partie du code

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(...); 
+0

Pouvez-vous donner un exemple? Je suis très nouveau à ce sujet. – user1206480

+1

vérifiez la modification que je viens de faire. Comme je l'ai dit, il y a des façons fantaisistes de le faire, mais pour le savoir, cela devrait suffire pour que vous commenciez – DVD

+0

Excellent! Je l'ai maintenant. Merci pour votre explication et votre temps. – user1206480