Вы можете реализовать шаблон IDisposable , который подключается к финализатору классов. Это означает, что ваш IDisposable член всегда будет очищен. Единственная проблема заключается в том, что вы не знаете, когда, как это зависит от GC, собирать класс Window.
В качестве альтернативы вы можете добавить обработчик события Window.Closed
и выполнить его там.