2014-09-30 5 views
1

переключить ShutdownMode в моем приложении к OnExplicitShutdown поэтому, когда я закрыть окно, мое приложение по-прежнему работает, и я стараюсь, чтобы вновь открыть окно, как это:Как открыть закрытое окно?

new MainWindow().Show; 

Но я получил следующее сообщение об ошибке: Set property '...ViewModelLocator.AutoWireViewModel' threw an exception. и InnerException является: 'AutoWireViewModel' property was already registered by 'ViewModelLocator'

Вы знаете, как это исправить?

Я использую ViewModelLocator из Microsoft.Prism

+2

Если вы закрываете окно, вы не можете «повторно открыть его». Вам нужно снова создать окно. –

ответ

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, если вы предпочитаете.

Смежные вопросы