title: Caliburn with attached events, failing with target
body: <p>Ok, so I'm trying to add attached event to a control. Now Caliburn doesn't support this naively, but I <a href="https://stackoverflow.com/questions/8402339/using-attached-events-with-caliburn-micro-message-attach">used code from a different article</a> that seems to provide a workaround. I basically need a way to add this kind of code <code>this.AddHandler(RadDragAndDropManager.DragInfoEvent, new EventHandler&lt;DragDropEventArgs&gt;(OnDragInfo), true);</code>, but caliburn doesn't support attached events. Here's my code:</p>
  
  <pre><code>&lt;telerik:RadTreeView Height="250" Name="Root" Width="300" ItemTemplate="{StaticResource BusinessEntityTemplate}" IsDragDropEnabled="true"  cal:Action.TargetWithoutContext="{Binding Source={x:Static RelativeSource.Self}}"&gt;
      &lt;i:Interaction.Triggers&gt;
      &lt;Helpers:RoutedEventTrigger RoutedEvent="{x:Static dragDrop:RadDragAndDropManager.DropQueryEvent}" IncludeHandledEvents="True"&gt;
          &lt;cal:ActionMessage MethodName="OnDropQuery"&gt;
          &lt;!--&lt;cal:Parameter Value="$eventargs" /&gt;--&gt;
          &lt;/cal:ActionMessage&gt;
      &lt;/Helpers:RoutedEventTrigger&gt;
      &lt;/i:Interaction.Triggers&gt;
      &lt;/telerik:RadTreeViewItem&gt;--&gt;
  &lt;/telerik:RadTreeView&gt;
  </code></pre>
  
  <p>RoutedEventTrigger is defined as following:</p>
  
  <pre><code>public class RoutedEventTrigger : EventTriggerBase&lt;DependencyObject&gt;
  {
      RoutedEvent _routedEvent;
      public RoutedEvent RoutedEvent
      {
          get { return _routedEvent; }
          set { _routedEvent = value; }
      }
      bool _includeHandledEvents = false;
  
      public bool IncludeHandledEvents
      {
          get { return _includeHandledEvents; }
          set { _includeHandledEvents = value; }
      }
  
      public RoutedEventTrigger() { }
      protected override void OnAttached()
      {
          Behavior behavior = base.AssociatedObject as Behavior;
          FrameworkElement associatedElement = base.AssociatedObject as FrameworkElement;
          if (behavior != null)
          {
              associatedElement = ((IAttachedObject)behavior).AssociatedObject as FrameworkElement;
          }
          if (associatedElement == null)
          {
              throw new ArgumentException("Routed Event trigger can only be associated to framework elements");
          }
          if (RoutedEvent != null)
          //{ associatedElement.AddHandler(RoutedEvent, new RoutedEventHandler(this.OnRoutedEvent)); }
          { associatedElement.AddHandler(RoutedEvent, new RoutedEventHandler(this.OnRoutedEvent), this.IncludeHandledEvents); }
  
      }
      void OnRoutedEvent(object sender, RoutedEventArgs args)
      {
          base.OnEvent(args);
      }
  
      protected override string GetEventName() { return RoutedEvent.Name; }
  }
  </code></pre>
  
  <p>and in my ViewModel I simply have a handler like this:</p>
  
  <pre><code>public void OnDropQuery(object sender, DragDropQueryEventArgs e) {}
  </code></pre>
  
  <p>When I run this the error that I get is on <code>base.OnEvent(args);</code> about <code>No target found for method OnDropQuery.</code> I'm struggling to figure out why this isn't working. </p>