4

How to pass string argument to EventHandler?

ViewController(A) Written Event Handler

    public event EventHandler ValueChanged; 

    void ResponseCompleted(object sender, CommonCode.ResponseEventArgs e){
        this.InvokeOnMainThread (delegate { 

        if (ValueChanged != null) {
        ValueChanged (this, new EventArgs (e.ResponseData));
// e.ResponseData is an String datatype.
         }
     });
    }

ViewController(B)

relatedDataSource.ValueChanged += delegate {
 Get Response Data from ViewControllerA
}
kiran
  • 4,285
  • 7
  • 53
  • 98

1 Answers1

5

You can use generic EventHandler. For example:

public event EventHandler<string> ValueChanged;

void ResponseCompleted(object sender, CommonCode.ResponseEventArgs e){
    this.InvokeOnMainThread (delegate { 

    var handler = ValueChanged;
    if (handler != null)
        handler(this, e.ResponseData);
    });
}

relatedDataSource.ValueChanged += (s, responseData) => {
    //Your data is in responseData variable
}
Norfolc
  • 458
  • 3
  • 10