title: When using ObservableCollection<T>, do I still need to implement INotifyPropertyChanged on type T?
body: <p><a href="https://msdn.microsoft.com/en-us/library/ms668604(v=vs.100).aspx" rel="nofollow">The MSDN reference page for <code>ObservableCollection&lt;T&gt;</code></a> notes:</p>
  
  <blockquote>
    <p>"The objects in your collection must satisfy the requirements described in the <a href="https://msdn.microsoft.com/en-us/library/ms743643(v=vs.100).aspx" rel="nofollow">Binding Sources Overview</a>. In particular, if you are using <a href="https://msdn.microsoft.com/en-us/library/system.windows.data.bindingmode(v=vs.100).aspx" rel="nofollow">OneWay</a> or <a href="https://msdn.microsoft.com/en-us/library/system.windows.data.bindingmode(v=vs.100).aspx" rel="nofollow">TwoWay</a> (for example, you want your UI to update when the source properties change dynamically), you must implement a suitable property changed notification mechanism such as the <a href="https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v=vs.100).aspx" rel="nofollow">INotifyPropertyChanged</a> interface."</p>
  </blockquote>
  
  <p>Since <code>ObservableCollection&lt;T&gt;</code> already implements <code>INotifyPropertyChanged</code>, why do I need to again implement <code>INotifyPropertyChanged</code> on <code>T</code> also?</p>