title: How to refactor models without breaking WPF views?
body: <p>I've just started learning WPF and like the power of databinding it presents; that is ignoring the complexity and confusion for a noob.</p>
  
  <p>My concern is how do you safely refactor your models/viewmodels without breaking the views that use them?</p>
  
  <p>Take the following snippet of a view for example:</p>
  
  <pre><code>&lt;Grid&gt;
      &lt;ListView ItemsSource="{Binding Contacts}"&gt;
          &lt;ListView.View&gt;
              &lt;GridView&gt;
                  &lt;GridViewColumn Header="First Name" DisplayMemberBinding="{Binding Path=FirstName}"/&gt;
                  &lt;GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding Path=FirstName}"/&gt;
                  &lt;GridViewColumn Header="DOB" DisplayMemberBinding="{Binding Path=DateOfBirth}"/&gt;
                  &lt;GridViewColumn Header="# Pets" DisplayMemberBinding="{Binding Path=NumberOfPets}"/&gt;
                  &lt;GridViewColumn Header="Male" DisplayMemberBinding="{Binding Path=IsMale}"/&gt;
              &lt;/GridView&gt;
  
          &lt;/ListView.View&gt;
      &lt;/ListView&gt;
  &lt;/Grid&gt;
  </code></pre>
  
  <p>The list is bound to the Contacts property, IList(Of Contact), of the windows DataSource and each of the properties for a Contact is bound to a GridViewColumn.</p>
  
  <p>Now if I change the name of the NumberOfPets property in the Contact model to PetCount the view will break. How do I prevent the view breaking?</p>