title: mvvm solving nested models and viewmodels
body: <p>I'm trying to understand when to use models, when viewmodels and so on. Especially with nested lists. So my viewmodels handles events and commands and modify the model in basic... So in my basic examples it looks mostly like the viewmodel has a reference to the model and delegates propertys.</p>
  <pre><code>        public string Name
          {
              get { return _model.Name; }
              set
              {
                  _model.Name = value.Trim();
                  RaisePropertyChanged(&quot;Name&quot;);
              }
          }
  </code></pre>
  <p>But what happens now if I have a list of models which has a list of models too.
  Example: Users which have a list of todos. So what can I do now? My first thought is to create <code>UserViewModel</code> &amp; <code>TodoViewModel</code>. So I have an <code>ObservableCollection&lt;UserViewModel&gt;</code> and every <code>UserViewModel</code> has a <code>ObservableCollection&lt;TodoViewModel&gt;</code>.</p>
  <p>And everytime I add a Todo I create <code>Todo</code> and <code>TodoViewModel</code> bind the todo object to the <code>TodoViewModel</code> and so on? This sounds like a big overload of objects...</p>
  <p>Am I to strict? Why do I need ViewModels here? What do I miss here? Why not implement <code>INotifyPropertyChanged</code> into the models? And Eventhandling and Commands are different files and I can bind the parameter to them. So the models dont know about the views and the views dont need viewmodels?</p>