Disponiendo los controles de usuario de WPF

He creado un control de usuario WPF personalizado que está destinado a ser utilizado por un tercero. Mi control tiene un miembro privado que es desechable, y me gustaría asegurarme de que siempre se llame a su método de eliminación una vez que se cierre la ventana / aplicación que lo contiene. Sin embargo, UserControl no es desechable. Intenté implementar la interfaz IDisposable y suscribirme al evento descargado, pero ninguno de los dos me llamó cuando la aplicación host se cierra. Si es posible, no quiero confiar en que los consumidores bajo mi control recuerden llamar a un método de eliminación específico.

 public partial class MyWpfControl : UserControl
 {
     SomeDisposableObject x;

     // where does this code go?
     void Somewhere() 
     {
         if (x != null)
         {
             x.Dispose();
             x = null;
         }

     }
 }

La única solución que he encontrado hasta ahora es suscribirse al evento Dispatcher's ShutdownStarted. ¿Es este un enfoque razonable?

this.Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted;

Respuestas a la pregunta(7)

Su respuesta a la pregunta