title: Confused with Events, Delegates and the like in Monotouch
body: <p>I come from a very proficient Windows .NET background and I'm having a go with Monotouch and I am very confused as to how to respond to events. I like to keep things simple and I have read the Montouch tutorials and looked at the examples.  What I'm getting confused about is how to respond to events. </p>
  
  <p>Lets say I have ViewController with a UIButton and a UILabel on it.  When I press the button I want to change the label to say "Clicked button".</p>
  
  <p>Therefore I could just do the following:</p>
  
  <pre><code>public override void ViewDidLoad () {
       base.ViewDidLoad ();
       this.btnClickMe.TouchUpInside += (sender, e) =&gt; {
           this.lblOutput.Text = "Clicked @ " + DateTime.Now.ToShortTimeString ();
  }
  </code></pre>
  
  <p>OR alternatively, I could use this approach which I think would serve me better when it comes to responding to buttons pressed in NavigationBars etc.. In IB I Ctrl-Drag to create an Action. I then move the [Action] method to my .cs file and do the following.</p>
  
  <pre><code>[Action ("btnClickMe_TouchUpInside:")]
  public void btnClickMe_TouchUpInside (NSObject sender)
  {
      this.lblOutput.Text = "Clicked @ " + DateTime.Now.ToShortTimeString ();
  }
  </code></pre>
  
  <p>What makes it more confusing for me is some UI components have a .delegate member. To which I can an add an event. </p>
  
  <p>Whats the best method or am I getting totally confused?  If so is there is a link you can direct me to where I can learn the best practice, the right approach etc..</p>
  
  <p>Many thanks</p>
  
  <p>Mike</p>