title: WPF Routed Events Across Element Tree Branches
body: <p>I am wondering what the correct mechanism to enable communication between controls in WPF is.  My goal is to not use conventional events and have to manually wire them up. The default behavior of routed commands (tunneling, bubbling) seems to be along the right lines but I guess I'm missing something.</p>
  
  <blockquote>
    <p>Routed events are a new infrastructure provided by WPF which allows events to tunnel down the visual tree to the target element, or bubble up to the root element.  When an event is raised, it “travels” up or down the visual tree invoking handlers for that event on any element subscribed to that event it encounters en route.  <strong>Note that this tree traversal does not cover the entire visual tree, only the ancestral element</strong> </p>
  </blockquote>
  
  <p>That is from this <a href="http://joshsmithonwpf.wordpress.com/2007/06/22/overview-of-routed-events-in-wpf/" rel="nofollow noreferrer">WPF Article</a></p>
  
  <p>Using the image in the article, I want "Immediate Element #1" to initiate (raise) an event and then have "Immediate Element #2" handle that event.  I'd like to achieve this without having to put any code in the "Root Element".</p>
  
  <p>Basically fire an event (save, status updated, selection changed, etc..) from any where in my app, then have it be handled somewhere else with out the 2 parties knowing anything about each other.  Is this possible?</p>
  
  <p>I dont believe data bainding is the answer. I'd like to use Routed Events / Commands as they were designed just across the entire tree, not just within the source control's branch.  Maybe it can't be done using routed events / commands, and data binding is the answer.  I just dont know...</p>
  
  <p>Any ideas?</p>