Enviar Parámetros Personalizados a un Evento

En algún momento vamos a necesitar enviar parámetros a un evento, presupongamos que tenemos el siguiente escenario, tenemos una vista en WPF (XAML, con Code – Behind) y tenemos una clase llamada Persona.
Supongamos que cuando sucede un evento determinado, como por ejemplo el cambio de alguna de sus propiedades, debe de avisarle a la vista que despliegue un MessageBox en pantalla con un mensaje.
Para poder conseguir esto haremos lo siguiente; crearemos una nueva clase llamada "EventArgsWithMessage” que heredara de EventArgs:
public class EventArgsWithMessage:EventArgs
{
         public string Message{get;set;}
         public EventArgsWithMessage(string_message)
         {
               this.Message=_message;
         }
}
El siguiente paso sera crear un “EventHandler” en nuestra clase Persona, de la siguiente manera:
 public event EventHandler ShowErrorMessage;
Como siguiente paso dentro de la misma clase usaremos el siguiente código para realizar la llamada al evento, ese código debe de estar en algún método:

if(this.CancelChanges==null)
 return;
 
this.CancelChanges(this,newEventArgsWithMessage("A Message"));
Ya definido el evento, deberemos de implementar el evento en nuestra vista, que lo haremos como sigue (Se usa tipos genéricos para realizar la instancia del evento):

Private Persona persona= new Persona();
persona.ShowErrorMessage+=new EventHandler<EventArgsWithMessage>(ShowError);
Y por ultimo implementaremos el método llamada “ShowError”, de la siguiente manera:

void ShowError(object sender,EventArgsWithMessage e)
{
 MessageBox.Show("Message:" + e.Message);
}
Con eso ya estaría todo lo necesario para poder crear un evento con parámetros personalizados

Suerte!.

Publicar un comentario