2012-09-19 34 views
5

En el siguiente código, necesito saber la sintaxis de pasar dos cadenas cuando se produce el evento.Sintaxis para enviar dos cadenas en eventArgs

[PublishEvent("Click")] 
public event EventHandler<EventArgs<string>> MyEvent; 

Gracias, sajón.

+2

son ninguna de las respuestas válidas? –

Respuesta

19

La manera más limpia es crear su propia clase que deriva de EventArgs:

public class MyEventArgs : EventArgs 
    { 
     private readonly string _myFirstString; 
     private readonly string _mySecondString; 

     public MyEventArgs(string myFirstString, string mySecondString) 
     { 
      _myFirstString = myFirstString; 
      _mySecondString = mySecondString; 
     } 

     public string MyFirstString 
     { 
      get { return _myFirstString; } 
     } 

     public string MySecondString 
     { 
      get { return _mySecondString; } 
     } 
    } 

Y utilizar de esta manera:

public event EventHandler<MyEventArgs> MyEvent; 

para generar el evento, se puede hacer algo como esto:

protected virtual void OnMyEvent(string myFirstString, string mySecondString) 
    { 
     EventHandler<MyEventArgs> handler = MyEvent; 
     if (handler != null) 
      handler(this, new MyEventArgs(myFirstString, mySecondString)); 
    } 
2

Haga su clase y amplíe para EventArgs, y páselo

public class YourCustomeEvent : EventArgs 
{ 
    public string yourVariable {get; } 
} 

Ahora usted tiene que proporcionar su clase personalizada como esta

public event EventHandler<YourCustomeEvent> MyEvent; 
Cuestiones relacionadas