title: Composite ViewModels in a WPF application
body: <p>I came accross the following situation:</p>
  
  <p>I have 2 view models and a single view which contains 2 user controls on which the view models will be bound to. The first VM is a Search functionality which returns a list of Persons, and the second VM is a more detailed description of each person. </p>
  
  <p>I want to do the following:</p>
  
  <pre><code>public CompositeVM
  {
       public SearchVM SearchViewModel{get;set;}
       public DescriptionVM DescriptionViewModel{get;set;}
  }
  </code></pre>
  
  <p>As I have said, the search view model also incorporates a list of found persons, so I wish that when I select a person the DescriptionVM to be updated accordingly.</p>
  
  <p>How can I achieve this type of communication between VMs? Should I set a SelectedPerson property on the SearchVM and pass it to the DescriptionVM when the selected list item changes (pretty high coupling to me)? Is there a more simple approach to this matter?</p>