title: Why the view constructor is not called every time I create a new viewmodel?
body: <p>I am using WPF with model-view-viewmodel pattern. I have a ResultsView and ResultsViewModel which are connected like this:</p>
  
  <pre><code>            &lt;DataTemplate DataType="{x:Type VM:ResultsViewModel}"&gt;
                  &lt;VW:ResultsView/&gt;
              &lt;/DataTemplate&gt;
  </code></pre>
  
  <p>In my main window I have some kind of paged setup where MainContent property stores the current page (ViewModel instance).</p>
  
  <p>I create the page like this    </p>
  
  <pre><code>MainContent = new ResultsViewModel();
  </code></pre>
  
  <p>ResultsView is based on UserControl, it also has a handler for Loaded event which does some UI initialization stuff.</p>
  
  <p>Everything works fine while the user is navigating between different pages.</p>
  
  <p>But if the user opens the ResultsView two times in a row, the ResultsView constructor is <strong>not</strong> called the second time, and also Loaded event is not called. It seems that now I have the same old ResultsView instance attached to the new ResultsViewModel()!</p>
  
  <p><strong>Why WPF does not create a new View each time I create a new ViewModel? Is there some way I can force WPF to discard the old view if the old viewmodel is destroyed?</strong></p>