Öffnungs ich mich gefragt, ob es eine effizientere Art und Weise ist in WPF ein neues Fenster zu öffnen, als wie unten in Code dargestellt:Ein richtiger Weg, um neue wpf Fenster
WindowConfigureDatabase windowConfigureDatabse;
private void ButtonConfigureDatabase_Click(object sender, RibbonControlEventArgs e)
{
if (windowConfigureDatabase == null)
{
windowConfigureDatabase = new WindowConfigureDatabase();
}
windowConfigureDatabase.Clear();
windowConfigureDatabase.Show();
windowConfigureDatabase.WindowState = WindowState.Normal;
}
Wo windowConfigureDatabase das neue Fenster ist, ich will öffnen. windowConfigureDatabase.Clear(); setzt nur alle Werte auf den Standardwert zurück - es gibt nicht viele, die zurückgesetzt werden müssen. Ich habe mich gefragt, ob dies der richtige Weg ist, um neue Fenster in WPF zu öffnen. Der andere Weg, an den ich dachte, war einfach ein neues Fenster bei jedem Klick zu erstellen (auf diese Weise muss ich die Werte nicht jedes Mal löschen ...), aber ich habe Angst, zu viel Speicher zuzuweisen, wenn ein Benutzer das öffnet Fenster und schließt es oft, da ich nicht ganz sicher bin, ob der Garbage Collector das Fenster beim OnClose-Ereignis aufruft.
Also im Grunde ist meine Frage - greift der Müllsammler meine Fenster auf, nachdem ich sie während des Schließens geschlossen habe? Wenn nicht, was wäre die richtige Art, den Speicher des Fensters manuell zu verwalten? Würde das Hinzufügen einer
windowConfigureDatabase = null
auf Closed/OnClosing Veranstaltung gut tun?
Das ist ganz in der Nähe, was ich jetzt in meinem Code haben, mit Ausnahme der Dialogresult = false. Ich nehme an, Sie brauchen das nur, wenn Sie eine Schaltfläche haben, die eine Standard-Ja-> Beenden-Schaltfläche ist? –
Die Einstellung von DialogResult in diesem Fall ist nur ein normaler Standard. Es ist nicht notwendig, es sei denn, Sie müssen schließen/ausblenden, um einen Cancel-Effekt zu haben. –
Okay. Also bleibe ich dabei, aber jetzt muss ich eine bessere Möglichkeit finden, die Werte nach dem Schließen eines Fensters auf die Standardwerte zurückzusetzen, als eine separate Funktion für jede von ihnen zu machen ... –