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(); } } }