Problema: Tengo una clase de documento que contiene una lista de objetos. Estos objetos generan eventos como SolutionExpired
, DisplayExpired
etc. El documento debe responder a esto.Eliminando todos los manejadores de eventos de una vez
Los documentos a veces pueden intercambiar objetos, pero un solo objeto nunca debe ser "parte" de más de un documento.
Mi clase de documento contiene un conjunto de métodos que sirven como controladores de eventos. Cada vez que un objeto ingresa al documento, uso AddHandler
para configurar los eventos, y cada vez que se quita un objeto del documento, uso RemoveHandler
para deshacer el daño. Sin embargo, hay casos en los que es difícil asegurarse de que todos los pasos se tomen correctamente y, por lo tanto, podría terminar con controladores de eventos deshonestos.
Cuento corto; ¿Cómo elimino todos los controladores que apuntan a un método específico? Tenga en cuenta que no tengo una lista de posibles fuentes de eventos, estos podrían almacenarse en cualquier lugar.
Algo así como:
RemoveHandler *.SolutionExpired, AddressOf DefObj_SolutionExpired
posible duplicado de [Cómo eliminar todos los controladores de eventos de un control] (http://stackoverflow.com/questions/91778/how-to-remove-all-event-handlers-from-a-control) – ChrisF
Posible duplicado de [Cómo eliminar todos los controladores de eventos de un control] (https://stackoverflow.com/questions/91778/how-to-remove-all-event-handlers-from-a-control) –