Es es posible delegar eventos de instancia de objeto interno a los controladores de eventos de objetos Corrent con una sintaxis como esta:¿Es posible "encadenar" EventHandlers en C#?
public class MyControl {
public event EventHandler Finish;
private Wizard wizard;
public MyControl(Wizard wizard) {
this.wizard = wizard;
// some other initialization going on here...
// THIS is what I want to do to chain events
this.wizard.Finish += Finish;
}
}
La motivación para la estructura anterior es que tengo muchos flujos de interfaz de usuario similares a asistentes y quería separar la parte posterior, adelante & Cancelar el manejo de una sola clase para respetar el Principio de Cerrado Abierto y el Principio de Responsabilidad Individual en mi diseño.
Añadiendo un método OnFinish y haciendo la comprobación normal siempre es posible, pero en el caso de que haya muchos eventos anidados, terminará con muchos códigos repetitivos.
Gracias, el razonamiento detrás de la segunda opción es suficiente para implementar el sistema de esa manera. Y gracias por la primera opción también porque no me di cuenta de que había una sintaxis para sobrecargar add. – plouh
Por curiosidad, ¿por qué asigna Finish to handler antes de probar nulo e invocar a Finish? – dckrooney
@dcrooney: Debería haber invocado el controlador en su lugar. Editaré –