title: Is there a MemoryLeak?
body: <p>I load a List of LiefItems.</p>
  
  <pre><code>List&lt;LiefItem&gt; list = this.LoadLiefItems();
  </code></pre>
  
  <p>LiefItem is implementing INotifyPropertyChanged on this way:</p>
  
  <pre><code>public event PropertyChangedEventHandler PropertyChanged;
  
  [NotifyPropertyChangedInvocator]
  protected virtual void OnPropertyChanged(string propertyName) {
      PropertyChangedEventHandler handler = PropertyChanged;
      if (handler != null) {
          handler(this, new PropertyChangedEventArgs(propertyName));
      }
  }
  </code></pre>
  
  <p>After loading the List, I am subscribing to PropertyChanged:</p>
  
  <pre><code>foreach(var item in list) {
      item.PropertyChanged += ItemOnPropertyChanged;
  }
  </code></pre>
  
  <p>After, the List will be used as a ItemsSource of a DataGrid.</p>
  
  <p>I asking me now, if load the list a second time and set the new List as ItemsSource of my DataGrid, are the first loaded items removed from the Memory or does I have a MemoryLeak because I am subscribing to PropertyChanged and don't unsubscribe?</p>