Um einen besseren Kontext zu schaffen, hier mein Code:
Wie Sie sehen können, wird die Variable _window beibehalten.
Code: Select all
public App(IServiceProvider ServiceProvider, ILogger logger)
{
_logger = logger;
_shell = ServiceProvider.GetService() ?? throw new Exception();
InitializeComponent();
}
protected override Window CreateWindow(IActivationState? activationState)
{
if (_window != null)
{
_logger.WriteLog("CreateWindow: Window is not null");
return _window;
}
else
{
_logger.WriteLog("New Window");
_window = new(_shell);
}
return _window;
}
Dann habe ich eine neue App mit der gleichen Logik wie oben erstellt. Aber die neue App zeigt dieses Verhalten nicht, sobald ich die App schließe und dann wieder öffne. Es wird ständig versucht, ein neues Fenster zu erstellen.
Was habe ich übersehen? Wie kann die alte Instanz der App-Klasse nach dem Schließen der App erhalten bleiben?
Mobile version