title: combo box does not refresh when observable collection changes
body: <p>I have a wpf desktop app.</p>
  
  <p>I have a dropdown box and its items source is set to an observable collection.</p>
  
  <p>The purpose is to display a list of users.
  I have a button on that form that will delete the selected user.
  It sets the field 'Active' to '0' where '1' is not deleted.</p>
  
  <p>The problem is that even though I can see the observable collection has been reduced by 1. But visually the dropdown shows all the original user states.</p>
  
  <p>This is my XAML:</p>
  
  <pre><code>&lt;ComboBox ItemsSource="{Binding Users}" DisplayMemberPath="Login" 
                   SelectedValue="{Binding SelectedManagerUser}"  /&gt;
  </code></pre>
  
  <p>This is the VM bit of it:</p>
  
  <pre><code>public ObservableCollection&lt;UserRecord&gt; Users
  {
      get
      {
          return (from users in UserRecord.Get().Where(d =&gt; d.Active == 1)
                       select new UserRecord
                       {
                           FName = users.FName,
                           SName = users.SName,
                           UserRecordId = users.UserRecordId,
                           Login = users.Login,
                           IsAdmin = users.IsAdmin,
                           UserRef = users.UserRef,
                           Disabled = users.Disabled,
                           Branch = users.Branch,
                           Department = users.Department,
                           Position = users.Position,                                
                           Salt = users.Salt,
                       }).OrderBy(d =&gt; d.Login).ToList();
  
      }
      set {
          _Users =  value; RaisePropertyChanged(InformedWorkerCommon.Constants.VM_Users); }
  }
  </code></pre>
  
  <p>My POCO/Model:</p>
  
  <pre><code>public class UserRecord
  {
      public int UserRecordId { get; set; }
      public string FName { get; set; }
      public string SName { get; set; }
      public string Login { get; set; }
      public string Salt { get; set; }
      public int IsAdmin { get; set; }
      public string UserRef { get; set; }
      public int Disabled { get; set; }
      public string Branch { get; set; }
      public string Position { get; set; }
      public int Active { get; set; }
      public string Department { get; set; }
      public string ServerRef { get; set; }
      public DateTime ServerTS { get; set; }
  }
  </code></pre>
  
  <p>This is the code that sets the Active field to '0':</p>
  
  <p><strong>my test involves pre-loading with 2 users</strong></p>
  
  <pre><code>private void DeleteUser()
  {
      try
      {
  </code></pre>
  
  <p><strong>at this point the Users count is 2</strong></p>
  
  <pre><code>        UserRecord.Save(new UserRecord()
                  {
                      UserRef=UserRef,
                      Branch = Branch,
                      Department = Department,
                      Disabled = Disabled == true ? 1 : 0,
                      FName = FName,
                      IsAdmin = 0,
                      Login = Login,
                      Position = Position,
                      SName = SName,
                      Active = 0,                           
                  });
  </code></pre>
  
  <p><strong>at this point the Users count is 1 but the dropdown still shows 2 users</strong></p>
  
  <pre><code>                DisplayInfoMessage(Properties.Resources.Deleted);
              }
          }
      }
      catch (Exception ex)
      {
          //handle the error
      }
  }
  </code></pre>
  
  <p>I am relatively new to wpf so I could be doing a right howler here?</p>