2011-01-04 11 views
2

Ich habe zwei Seiten. Auf der ersten Seite, wenn der Benutzer auf button1 klickt, folgt Code ausführt ..Über Navigation

{ 
MessageBox.Show("1"); 
NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative)); 
MessageBox.Show("4"); 
} 

Die PhoneApplicationPage_Loaded Ereignis auf 'Page1.zaml' Foll enthält. Code ...

{ 
    MessageBox.Show("2"); 
    MessageBox.Show("3"); 
}. 

Aber seine "1", "4" Zeigen, dann über Page1.xaml Steuerung geht & dann MessageBox "2" & "3" angezeigt. Angenommen, ich möchte die Ausgabe wie Nachrichtenboxen mit "1 2 3 4" der Reihe nach, dann was ist die Lösung, plz helfen.

+0

mögliches Duplikat von [Vollzugriff (Navigation) übertragen] (http://stackoverflow.com/questions/4593026/transfer-full- control-navigation) –

+0

Wenn Sie diese Frage wegen ungenauen Schreibens ablehnen, entfernen Sie sie bitte. –

Antwort

0

Ich bin nicht ganz überrascht - ich vermute, dass der Befehl NavigationService.Navigate grundsätzlich einen Befehl "bitte navigieren" zur Warteschlange der Benutzeroberflächenereignisse hinzufügt, anstatt alles sofort zu tun.

Wenn Sie möchten, dass nach Abschluss der Navigation etwas passiert (wie in diesem Fall das Meldungsfeld), versuchen Sie, die NavigationService.Navigated event zu abonnieren. (Sie müssen prüfen, ob das Ereignis vor oder nach dem Ereignis Page.Loaded ausgelöst wird.)

+0

Es ist nicht ganz klar, was hier vor sich geht. Ich werde mich mit Jon auf diesem einlassen. Dieser Thread gibt Ihnen eine Vorstellung von MessageBox und Storyboard-Ereignissen, die noch nicht erklärt wurden. http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/77ec9eca-07f0-4a90-aaaa-f3781331a61e –

+0

Lesen Sie die Frage erneut, es ist ziemlich klar, dass jede Methode nur sequenziell ausgeführt wird. –

+0

@Mick: Ich bin mir nicht sicher, ob du das sagst * du * hast gerade die Frage neu gelesen oder vorgeschlagen, dass ich das tue :) –