title: Communication between parent and child viewmodel via notifychanged or command property?
body: <p>In my WPF application I'm following the MMV pattern.
  I have a main View with nested child Views. I have a main VM that holds instances of the child VMs. At some point, the main VM needs to be informed when certain properties of the child VM change.</p>
  
  <p>I have searched the Web a lot. The prefered approach seems to be to use an existing framework (MVVMlight/Prism) and/or some sort of messenger service. Whenever a question dealing with VM-interaction is asked on any board/faq, you can be sure at least one answer suggests using this approach. 
  While I can very well see the advantages of it in a big application (or if you are looking for a "universal" solution), it sometimes seems to be a lot of overhead for small applications. </p>
  
  <p>To me, the most obvious approaches, especially in small applications, would be to</p>
  
  <ul>
  <li>subscribe to the child VM's NotifyPropertyChanged.</li>
  </ul>
  
  <p>OR</p>
  
  <ul>
  <li>have the main VM pass a (Relay)Command to the child VM, so that the child VM can execute the command whenever a certain property changes (maybe even passing the changed value as command parameter), that way the main VM knows about the change and can deal with it.</li>
  </ul>
  
  <p>I am wondering if there is something "wrong" with those two approaches in general, for I cannot see them violating MVVM rules? Maybe I am missing something? </p>
  
  <p>Is it ok to use one of these approaches when you can't make use of the advantages of using the messenger based approach in an application?</p>