2011-05-20 49 views
0

WPF 我需要CLEAN並再次啓動窗口SetPathCharger.xaml,當用戶在「Yes」消息框上點擊時,問題是應用程序發送錯誤InvalidOperationException。如何重新啓動窗口?

public void ExitProgram(string message) 
{ 
    var restart = MessageBox.Show("Do you want do it again?", 
            "Question", MessageBoxButton.YesNo, 
            MessageBoxImage.Question).ToString(); 
    if (restart == "Yes") 
    { 
     _setPathCharger.ShowDialog(); 
    } 
    if (restart == "No") 
    { 
     Environment.Exit(0); 
    }   
} 

我該怎麼做?

+1

快速旁註:你應該使用'DialogResult'枚舉,而不是直接強制轉換爲字符串 – Dyppl 2011-05-20 16:57:41

回答

2

你應該只創建並顯示一個新的窗口SetPathCharger,而不是重用當前之一。喜歡的東西:

_setPathCharger = new SetPathCharger(); 
_setPathCharger.ShowDialog(); 
+0

解決方案是好的,但有問題,當啓動新窗口時,上一個窗口保持打開狀態。開始新的時候,我需要關閉它。 – ale 2011-05-20 17:23:59

+0

先調用'_setPathCharger.Close();',然後創建一個新的 – 2011-05-20 17:26:01

1

假設ExitProgram在某個外部作用域中,並且在關閉_setPathCharger之後觸發,那麼我想你正在試圖ShowDialog()一個處置對象。

嘗試:

_setPathCharger = new SetPathCharger(); 
_setPathCharger.ShowDialog(); 
+0

該解決方案是好的,但有一個問題,當啓動新的窗口前面的窗口保持打開狀態。開始新的時候,我需要關閉它。 – ale 2011-05-20 17:23:47