2014-09-30 91 views
1

我在我的應用程序切換到ShutdownMode所以OnExplicitShutdown當我關閉窗口,我的應用程序還在工作,我試圖重新打開窗口是這樣的:如何重新打開關閉的窗口?

new MainWindow().Show; 

但我有以下錯誤:Set property '...ViewModelLocator.AutoWireViewModel' threw an exception.InnerException是:'AutoWireViewModel' property was already registered by 'ViewModelLocator'

你有什麼想法如何解決這個問題?

我用ViewModelLocatorMicrosoft.Prism

+2

如果關閉窗口,則無法「重新打開」。你必須重新創建窗口。 – 2014-09-30 14:55:28

回答

1

不幸的是,你根本無法將其關閉後重新打開Window。然而,你可以'假裝'你可以並使用一些小小的欺騙......而不是首先關閉Window,你可以簡單地隱藏它,因爲它可以隱藏並重新顯示任意次數:

YourWindow.Visibility = Visibility.Collapsed; 

可以改善這種狀況略有也許,通過一個事件處理程序連接到Window.Closing Event。這種特殊的事件提供了一種方法來取消Close操作所以在這一點上,你可以隱藏它,而不是:

private void Window_Closing(object sender, CancelEventArgs e) 
{ 
    // Cancel Window closing 
    e.Cancel = true; 
    // Hide Window instead 
    YourWindow.Visibility = Visibility.Collapsed; 
} 

你可以或者把這個功能Window代碼中使用背後的Window.OnClosing Method如果你首選。