title: DisplayMemberPath reverts back to Name after setting to something else
body: <p>So I am working on an application that uses the MVVM structure to display data to a user and for them to modify it. The issue I am currently having is this:</p>
  
  <p>Upon selecting an entity from a RadGridView, I then add that member the user looked at to an ObservableCollection. I then see that the RadListBox get's populated(meaning I can hover over the item) but nothing is displayed. The Object is a DataContract I am referencing from the services. I've tried a multitude of fixes but to no avail. </p>
  
  <p>At one point I started using Snoop and noticed that no matter what I set the DisplayMemberPath to the value is DisplayMemberPath would always be "Name". And when I was in Snoop if I changed the value DisplayMemberPath to FirstName the name would pop up in my WPF application.</p>
  
  <p>I've been staring at this for awhile and may just need a new set of eyes. Here is the relevant code:</p>
  
  <p>XAML Code:
  </p>
  
  <pre><code>&lt;Grid MinHeight="70"&gt;
    &lt;TextBlock Text="No Members viewed"
               FontWeight="Bold"
               HorizontalAlignment="Center"
               VerticalAlignment="Center"
               Visibility="{Binding TextBlockVisibility, FallbackValue=Visible, Mode=OneWay}"&gt;
    &lt;/TextBlock&gt;
    &lt;telerik:RadListBox Name="uRecenetlyViewMembersListBox"
            DataContext="{Binding MemberInfo}"
                        SelectionMode="Single"
            DisplayMemberPath="{Binding FirstName}"
                        ItemsSource="{Binding RecentlyViewedMembers}"
                        SelectedItem="{Binding SelectedRecentlyViewedMember,Mode=TwoWay}"
                        Visibility="{Binding WorkingListNoRecordsVisibility, FallbackValue=Visible, Mode=OneWay}" 
                        MouseDoubleClick="uRecenetlyViewMembersListBox_MouseDoubleClick"&gt; 
       &lt;i:Interaction.Triggers&gt;
         &lt;i:EventTrigger EventName="SelectionChanged"&gt;
           &lt;i:InvokeCommandAction Command="{Binding RecentlyViewedSelectionChanged}"&gt;
           &lt;/i:InvokeCommandAction&gt;
         &lt;/i:EventTrigger&gt;
       &lt;/i:Interaction.Triggers&gt;
    &lt;/telerik:RadListBox&gt;
  &lt;/Grid&gt;
  </code></pre>
  
  <p><strong>2/11 EDIT: So I removed the DataContext as it was unclear if it even worked as the context is pointing to correct ViewModel. And changed the DisplayMemberPath and removed binding.</strong></p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;Grid MinHeight="70"&gt;
    &lt;TextBlock Text="No Members viewed"
               FontWeight="Bold"
               HorizontalAlignment="Center"
               VerticalAlignment="Center"
               Visibility="{Binding TextBlockVisibility, FallbackValue=Visible, Mode=OneWay}"&gt;
    &lt;/TextBlock&gt;
    &lt;telerik:RadListBox Name="uRecenetlyViewMembersListBox"
                        SelectionMode="Single"
                        DisplayMemberPath="FirstName"
                        ItemsSource="{Binding RecentlyViewedMembers}"
                        SelectedItem="{Binding SelectedRecentlyViewedMember,Mode=TwoWay}"
                        Visibility="{Binding WorkingListNoRecordsVisibility, FallbackValue=Visible, Mode=OneWay}" 
                        MouseDoubleClick="uRecenetlyViewMembersListBox_MouseDoubleClick"&gt; 
       &lt;i:Interaction.Triggers&gt;
         &lt;i:EventTrigger EventName="SelectionChanged"&gt;
           &lt;i:InvokeCommandAction Command="{Binding RecentlyViewedSelectionChanged}"&gt;
           &lt;/i:InvokeCommandAction&gt;
         &lt;/i:EventTrigger&gt;
       &lt;/i:Interaction.Triggers&gt;
    &lt;/telerik:RadListBox&gt;
  &lt;/Grid&gt;
  </code></pre>
  
  <p>And c# code:</p>
  
  <pre class="lang-cs prettyprint-override"><code>private const UInt16 recentlyViewedMemberCapacity = 10;
  private ObservableCollection&lt;Member&gt; recentlyViewedMembers;
  public ObservableCollection&lt;Member&gt; RecentlyViewedMembers
  {
      get { return this.recentlyViewedMembers; }
      set
      {
          if (value != recentlyViewedMembers)
          {
              this.recentlyViewedMembers = value;
              //ugly &amp; inefficient: needs refactoring
              //recentlyViewedMembers = (ObservableCollection&lt;RecentlyViewedMember&gt;)recentlyViewedMembers.OrderByDescending(item =&gt; item.DateAdded);
              while (recentlyViewedMembers.Count &gt; recentlyViewedMemberCapacity)
                  recentlyViewedMembers.RemoveAt(recentlyViewedMemberCapacity);
              this.RaisePropertyChanged(() =&gt; this.RecentlyViewedMembers);
              ValidateWorkingListVisibility();
          }
      }
  }
  </code></pre>
  
  <p>Here is the DataContract returned from the Service, with only necessary pieces:
  </p>
  
  <pre><code>[DataContract(Name = "Member")]
  public class Member : INotifyPropertyChanged
  {
      public Member();
  
      [DataMember(Order = 0)]
      public string FirstName { get; set; }
  
      public event PropertyChangedEventHandler PropertyChanged;
  }
  </code></pre>