title: Observablecollection<T> in Listbox is not updating
body: <p>I have a Silverlight Listbox bound to Observablecollection which shows up fine (first time) but when I try to update it through the code behind, the change does not reflect in UI. I have used MVVM pattern . Pl have a look and at view and viewmodel.</p>
  
  <pre><code>&lt;UserControl x:Class="GridOperations.MainPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:local="clr-namespace:GridOperations.ViewModel"
      mc:Ignorable="d"
      d:DesignHeight="700" d:DesignWidth="700"&gt;
      &lt;UserControl.DataContext&gt;
          &lt;local:ShowUserListViewModel/&gt;
      &lt;/UserControl.DataContext&gt;
      &lt;UserControl.Resources&gt;
          &lt;local:ShowUserListViewModel x:Key="viewModelKey"/&gt;
      &lt;/UserControl.Resources&gt;
  
      &lt;Grid x:Name="LayoutRoot" Background="White"&gt;
  
          &lt;ListBox VerticalAlignment="Top" Margin="0,20,0,0" x:Name="lstBox" ItemsSource="{Binding UserList}" Width="700" Height="150" Background="AliceBlue"&gt;
              &lt;ListBox.ItemTemplate&gt;
                  &lt;DataTemplate&gt;
                      &lt;Grid&gt;
                          &lt;Grid.ColumnDefinitions&gt;
                              &lt;ColumnDefinition Width="300"/&gt;
                              &lt;ColumnDefinition Width="100"/&gt;
                              &lt;ColumnDefinition Width="100"/&gt;
                              &lt;ColumnDefinition Width="100"/&gt;
                          &lt;/Grid.ColumnDefinitions&gt;
                          &lt;TextBlock Margin="30,0,0,0" Text="{Binding UserId}" HorizontalAlignment="Left"/&gt;
                          &lt;TextBlock Margin="30,0,0,0" Text="{Binding Path=UserName, Mode=TwoWay}" Grid.Column="1" HorizontalAlignment="Left"/&gt;
                          &lt;Button Margin="30,0,0,0" Grid.Column="2" Content="Edit" Height="20" HorizontalAlignment="Left" Command="{Binding Source={StaticResource viewModelKey}, Path=UpdateUserCommand}" /&gt;
                          &lt;Button Margin="10,0,0,0" Grid.Column="3" Content="Del" Height="20" HorizontalAlignment="Left" /&gt;
                      &lt;/Grid&gt;
                  &lt;/DataTemplate&gt;
              &lt;/ListBox.ItemTemplate&gt;
          &lt;/ListBox&gt;
  
      &lt;/Grid&gt;
  &lt;/UserControl&gt;
  
  
      public class ShowUserListViewModel : INotifyPropertyChanged
          {
              public ShowUserListViewModel()
              {
                  mUserList = new ObservableCollection&lt;User&gt;();
                  mUserList.Add(new User() { UserId = Guid.NewGuid().ToString(), UserName = "testuser1", IsAdmin = true });
                  mUserList.Add(new User() { UserId = Guid.NewGuid().ToString(), UserName = "testuser2", IsAdmin = true });
  
                  this.UpdateUserCommand = new DelegateCommand(this.UpdateUser);
  
              }
  
              public ICommand UpdateUserCommand { get; private set; }
  
              private ObservableCollection&lt;User&gt; mUserList;
              public ObservableCollection&lt;User&gt; UserList
              {
                  get
                  {
                      return mUserList;
                  }
              }
  
              public event PropertyChangedEventHandler PropertyChanged;
  
              private void UpdateUser()
              {
                  this.UserList.Add(new User() { UserId = Guid.NewGuid().ToString(), UserName = "test", IsAdmin = false });            
              }
          }
  </code></pre>