1

ShutdownMode我在我的应用程序中切换到,OnExplicitShutdown所以当我关闭窗口时,我的应用程序仍在工作,我尝试像这样重新打开窗口:

new MainWindow().Show;

但我有以下错误:Set property '...ViewModelLocator.AutoWireViewModel' threw an exception.并且InnerException是:'AutoWireViewModel' property was already registered by 'ViewModelLocator'

你知道如何解决这个问题吗?

ViewModelLocatorMicrosoft.Prism

4

1 回答 1

1

不幸的是,您根本无法Window在关闭后重新打开它。但是,您可以“假装”您可以并使用一点欺骗......而不是Window首先关闭它,您可以简单地隐藏它,因为它可以被隐藏并重新显示任意次数:

YourWindow.Visibility = Visibility.Collapsed;

可以通过将事件处理程序附加到Window.ClosingEvent来稍微改善这种情况。此特定事件提供了一种取消Close操作的方法,因此此时您可以将其隐藏:

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

如果您愿意,您也可以使用Method将此功能放在Window后面的代码中。Window.OnClosing

于 2014-09-30T15:06:34.650 回答