title: ListView not updated after adding new items to List
body: <p>I have a <code>ListView</code> bounded to a List of a class I created. When doing an operating, it was supposed to add/remove items from the list, but my <code>ListView</code> wasn't updated even though I used <code>INotifyPropertyChanged</code>.</p>
  
  <p>If I use <code>ObservableCollection</code>, it works but I need to have the list sorted, and <code>ObservableCollection</code> doesn't do sorting for WPF4.0 :(</p>
  
  <p>Any way I can make the List binding work? Why didn't it work even though I used <code>INotifyPropertyChanged</code>?</p>
  
  <p>XAML:</p>
  
  <pre><code>&lt;ListView BorderThickness="0" ItemsSource="{Binding SelectedValues, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" Padding="5"&gt;
                      &lt;ListView.View&gt;
                          &lt;GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}"&gt;
                              &lt;GridViewColumn DisplayMemberBinding="{Binding Value}"&gt;&lt;/GridViewColumn&gt;
  </code></pre>
  
  <p>VM:</p>
  
  <pre><code>    private List&lt;CheckBoxItem&gt; _selectedValues = new List&lt;CheckBoxItem&gt;();
  
      public List&lt;CheckBoxItem&gt; SelectedValues
              {
                  get { return _selectedValues; }
                  set
                  {
                      _selectedValues = value;
                      OnPropertyChanged();
                  }
              }
  
      private void UnselectValueCommandExecute(CheckBoxItem value)
              {
                  value.IsSelected = false;
                  SelectedValues.Remove(value);
                  //OnPropertyChanged("SelectedValues");
                  OnPropertyChanged("IsAllFilteredValuesSelected");
              }
  
  public event PropertyChangedEventHandler PropertyChanged;
  
          protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
          {
              PropertyChangedEventHandler handler = PropertyChanged;
              if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
          }
  </code></pre>
  
  <p>The <code>CheckBoxItem</code> class contains 2 properties, <code>Value</code> and <code>IsChecked</code>, which I don't think is relevant here.</p>
  
  <p>So basically, I have a button which uses the <code>UnselectValueCommandExecute</code> to remove items from the list, and I should see the list updated in the UI, but I'm not.</p>
  
  <p>When I debug, I can see the <code>SelectedValues</code> list updated, but not my UI.</p>