2011-05-11 9 views
2

Dans mon cas, j'ai une fenêtre principale et une vue de connexion ..WPF: Fermer et ouvrir les fenêtres

Lorsque la fenêtre principale est fermée, la fenêtre de connexion doit être affichée. Je ferme comme si:

void CloseOnCompleteAndDisplayLogin(object sender, RunWorkerCompletedEventArgs e) 
    { 
     this.Close(); 
     new Login().Show(); 
    } 

Dans la fenêtre de connexion i ouvre la fenêtre principale comme ceci:

  this.Hide(); 
      var window = new MainWindow(model).Show(); 

Problème: Lorsque je me connecte et ouvre la fenêtre principale pour la première fois, il fonctionne très bien ... Lorsque je ferme la fenêtre principale et que je me reconnecte, plusieurs fonctions de la fenêtre principale cessent de fonctionner ou commencent à lancer des exceptions.

Qu'est-ce que je fais de mal ici? Je l'ai déjà pensé que « Window_Loaded » comme les événements ne sont pas déclenchés sur la re-connexion ..

Répondre

3

Oui, Loaded est pas déclenché si vous Hide/Show. Au lieu de cela, utilisez l'événement Shown pour initialiser votre logique.

+0

non représentés, mais u devrait plutôt utiliser à proximité – David

0

Je pense que cela pourrait être le problème

 new Login().Show(); 

d'abord vous cacher votre instance de la fenêtre de connexion et après la fermeture de MainWindow vous créez toujours nouveau()