J'ai créé une coutume WPF de contrôle de l'utilisateur qui est destiné à être utilisé par un tiers. Ma commande a un membre qui est jetable, et je tiens à vous assurer que sa méthode dispose obtiendrez toujours appelé une fois le contenant de la fenêtre/l'application est fermée. Cependant, UserControl n'est pas jetable. J'ai essayé la mise en œuvre de l'interface IDisposable et en vous abonnant à la Déchargé de l'événement, mais ni appelée lorsque la fermeture de l'application hôte. Si possible, je ne veux pas compter sur les consommateurs de mon contrôle d'oublier d'appeler un méthode dispose.
public partial class MyWpfControl : UserControl
{
SomeDisposableObject x;
// where does this code go?
void Somewhere()
{
if (x != null)
{
x.Dispose();
x = null;
}
}
}
La seule solution que j'ai trouvé jusqu'à présent est de vous abonner à la du Répartiteur ShutdownStarted événement. Est-ce raisonnable?
this.Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted;