How do you tell if a WPF Window is closed?

wpf

Solution

According to this conversation on the MSDN WPF forums (see the last post), you can check to see if the IsLoaded is false, which means that the window is "eligible" for unloading its content. I hope that works for you!

Problem

I'm working on an application that displays some child windows which can either be closed by the user or are automatically closed. While debugging some exceptions that were being thrown, I discovered I was trying to call methods like `Hide()` on a window that had already been closed; this particular branch of code was common to both cases and I hadn't noticed this. One of my first ideas was to look for a property on `Window` that would indicate the window had been closed. I can't seem to find one. In WinForms, I'd look to the IsDisposed property for a somewhat reliable indicator that the form had been closed (it won't reliably work for a dialog but I'm not working with dialogs.) I don't see anything equivalent on `Window`. The documentation for `Window.Close()` doesn't seem to indicate any properties that are changed by the method. Am I missing something obvious, or is the only method to know if a window's been closed to handle the `Closed` event? That seems kind of a harsh requirement for a simple task.

Original source