2016-03-24 8 views
0

Ich schreibe meine erste App mit C# und XMAL/WPF.Aufrufen einer Methode in einer Klasse C#

Es gibt eine MainWindow.xml, die einen Rahmen hat. Ich fügte dann neue Seiten hinzu (page1.xaml und page2.xaml).

MainWindow.xaml lädt zunächst den Inhalt von page1. Es gibt eine Schaltfläche auf Page1, die zu Page2 navigiert.

Ich möchte ein paar Zeilen Code auf Page2 laufen lassen. Hier habe ich ein Problem. Wenn ich eine Methode in Page2 erstellen und aufrufen (outside constructor, direkt danach), funktioniert es nicht.

Fehler ich bekomme ist unten.

Ich muss es in Page2 Konstruktor aufrufen, damit es ausgeführt wird; Der Code wird jedoch direkt nach dem Klicken auf die Schaltfläche in Page1 ausgeführt.

Es funktioniert, aber Windows zeigt weiterhin Seite1 und navigiert nach Ausführung der Befehle zu Seite2.

Ich würde Page2 möchte zunächst, laden und dann die Zeilen ausführen:

// button on page1 
private void nextButton_Click(object sender, RoutedEventArgs e) 
     { 
      Page2 p2= new Page2(); 
      this.NavigationService.Navigate(p2); 
     } 

Wenn ich Code außerhalb der Konstruktor (direkt nach dem Konstruktor) in ich die folgende Fehlermeldung erhalten:

Invalid token 'while' in class, struct, or interface member declaration

Antwort

0

Sie können dies versuchen:

// add this line to your page2 class constructor 
this.Loaded += new RoutedEventHandler(MainWindow_Loaded); 

Dann

void MainWindow_Loaded(object sender, RoutedEventArgs e) 
{ 
    while(true) 
    { // any loop you want 
    } 

} 
+0

Dank @deeiip funktioniert es. Befehle in 'MainWindow_Loaded' werden jedoch ausgeführt, bevor page2 geladen wird. Ich möchte page2 laden, damit ich den Inhalt von page2 sehen kann, und dann den Befehl ausführen. Im Moment wartet es, bis alle Befehle fertig ausgeführt sind und zeigt dann page2-Inhalt an. – Imsa