2011-05-20 102 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