Как открыть закрытое окно?

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
    Если вы закроете окно, вы не сможете «открыть его». Вы должны создать окно снова.
Теги:
wpf
prism

1 ответ

1

К сожалению, вы просто не можете повторно открыть Window после его закрытия. Тем не менее, вы можете "притворяться", что можете, и использовать небольшой обман... вместо того, чтобы сначала закрыть Window, вы можете просто скрыть его, поскольку его можно скрывать и повторно отображать сколько угодно раз:

YourWindow.Visibility = Visibility.Collapsed;

Вы могли бы немного улучшить эту ситуацию, Window.Closing обработчик событий с событием Window.Closing. Это конкретное событие обеспечивает способ отмены операции 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 если хотите.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню