title: Trigger method of the item within the ItemsControl using Caliburn Micro
body: <p>I have an <code>ItemsControl</code> as follow:</p>
  
  <pre class="lang-html prettyprint-override"><code>    &lt;ItemsControl ItemsSource="{Binding Items}"&gt;
          &lt;ItemsControl.ItemsPanel&gt;
              &lt;ItemsPanelTemplate&gt;
                  &lt;WrapPanel/&gt;
              &lt;/ItemsPanelTemplate&gt;
          &lt;/ItemsControl.ItemsPanel&gt;
          &lt;ItemsControl.ItemTemplate&gt;
              &lt;DataTemplate&gt;
                  &lt;ContentControl cal:Message.Attach="[Event MouseDoubleClick] = [Action ($dataContext).Launch]"&gt;
                      &lt;Grid Background="LightSteelBlue" Width="100" Height="100" Margin="4"/&gt;
                  &lt;/ContentControl&gt;
              &lt;/DataTemplate&gt;
          &lt;/ItemsControl.ItemTemplate&gt;
      &lt;/ItemsControl&gt;
  </code></pre>
  
  
  
  <p>The <code>ItemsControl</code>'s items source has a binding to an <code>ObservableCollection&lt;Item&gt;</code> in the view model.</p>
  
  <p>The following is the definition of <code>Item</code></p>
  
  <pre><code>public class Item
  {
      public void Launch()
      {
      }
  }
  </code></pre>
  
  <p>When double-clicked on the <code>Item</code>, I'm trying to trigger the <code>Launch()</code> method of the <code>Item</code> by using the following syntax:</p>
  
  <pre><code>cal:Message.Attach="[Event MouseDoubleClick] = [Action ($dataContext).Launch]"
  </code></pre>
  
  <p>However I get the "No target found for method" error message.</p>
  
  <p>Am I using the syntax correctly? Or the shorthand does not support such use case?</p>
  
  <p>UPDATE:</p>
  
  <p>My view model is as follows:</p>
  
  <pre><code>public class MainViewModel
  {
      // Binding Properties.
      public ObservableCollection&lt;Item&gt; Items
      {
          get;
          set;
      }
      public void Launch()
      {
  
      }
  
      // ctor.
      public MainViewModel()
      {
          Items = new ObservableCollection&lt;Item&gt;();
          Items.Add(new Item());
          Items.Add(new Item());
      }
  }
  </code></pre>
  
  <p>When I tried to use the following syntax to trigger <code>Launch()</code> method of <code>Item</code>, it trigger the <code>Launch()</code> method of the view model instead.</p>
  
  <pre><code>cal:Message.Attach="[Event MouseDoubleClick] = [Action Launch]"
  </code></pre>