Utilisation de l’événement fermé de la fenêtre WPF

J’ai une classe Window (par exemple, public partial class Foo : Window ) et lorsque je crée la fenêtre, je m’inscris pour l’événement Closed en tant que tel.

 foo = new Foo(); foo.Closed += FooClosed; public void FooClosed(object sender, System.EventArgs e) { } 

Quand quelqu’un appuie sur un bouton dans la fenêtre foo j’appelle this.Close() mais mon FooClosed ne semble pas être appelé.

Est-ce que je m’inscris incorrectement pour l’événement?

Mettre à jour

En passant, tout ce que j’essaie d’accomplir est de savoir quand foo a été fermé pour pouvoir redéfinir la référence sur null . Y a-t-il une meilleure façon d’accomplir cela?

Réponse à la question il y a quelques jours vérifier le code d’exécution à la fermeture d’un WPF

Vous avez peut-être quelque chose avec votre code car cela fonctionne très bien pour moi.

MainWindow.xaml.cs

 namespace WpfApplication1 { public partial class MainWindow : Window { private Foo foo; public MainWindow() { InitializeComponent(); foo = new Foo(); foo.Closed += FooClosed; foo.Show(); } public void FooClosed(object sender, System.EventArgs e) { //This gets fired off foo = null; } } } 

Foo.xaml

      

Foo.xaml.cs

 namespace WpfApplication1 { ///  /// Interaction logic for Foo.xaml ///  public partial class Foo : Window { public Foo() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { this.Close(); } } }