2011-05-11 155 views
2

在我的情況下,我有一個主窗口和一個登錄視圖..WPF:關閉並打開窗口

當主窗口關閉時,應該顯示登錄窗口。我關閉它,像這樣:

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

在登錄窗口,我打開主窗口,像這樣:

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

問題:當我登錄並打開主窗口的第一次工作正常...當我關閉主窗口並再次登錄時,主窗口的幾個功能停止工作或開始拋出異常。

我在做什麼錯在這裏?我已經認爲「Window_Loaded」類似的事件不會在重新登錄時觸發。

回答

3

是的,Loaded沒有觸發如果你隱藏/顯示。而是使用Shown事件來初始化您的邏輯。

+0

沒有顯示,但你應該寧可使用結束後 – David 2011-05-11 16:38:32

0

我想,這可能是

 new Login().Show(); 

首先你隱藏你的登錄窗口的實例的問題,並關閉主窗口,你總是創建新的()