2012-09-19 15 views
5

次のコードでは、イベント発生時に2つの文字列を渡す構文を知る必要があります。eventArgsで2つの文字列を送信する構文

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

ありがとう、 ザクセン。

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; } 
     } 
    } 

そして、このようにそれを使用します:

+2

のようなカスタムクラスを提供する必要が、有効な答えのどれもありませんか? –

答えて

19

クリーンな方法はEventArgsから派生する独自のクラスを作成することであるイベントを発生させるために

public event EventHandler<MyEventArgs> MyEvent; 

、あなたはこのような何かを行うことができます。

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

クラスを作成し、EventArgsのために延長し、

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

今、あなたはこの

public event EventHandler<YourCustomeEvent> MyEvent; 
関連する問題