title: INotifyPropertyChanged with a List
body: <p>What is the correct way to use INotifyPropertyChanged with a List?</p>
  
  <p>I have a CertInfo class that is a class of certifications:</p>
  
  <pre><code>    namespace ResumeApp
  {
      public class CertInfo
      {
          public DateTime AcquiredDate { get; set; }
          public String Certification { get; set; }
          public bool Enabled { get; set; }
          public int UserId { get; set; }
  
          public CertInfo()
          {}
  
          public CertInfo(DateTime acquiredDate, String cert, bool enabled, int userId)
          {
              this.AcquiredDate = acquiredDate;
              this.Certification = cert;
              this.Enabled = enabled;
              this.UserId = userId;
          }
      }
  }
  </code></pre>
  
  <p>And I have a Resume class that is INotifyPropertyChanged. I'm not sure about how to use the Notify with a List. Here is my Resume class:</p>
  
  <pre><code>    namespace ResumeApp
  {
      public class Resume : INotifyPropertyChanged
      {
          private PersonalInfo personal;
          private int userId;
          private ObservableCollection&lt;CertInfo&gt; certList;
  
          public event PropertyChangedEventHandler PropertyChanged;
  
          private void OnPropertyChanged(string propertyName)
          {
              if (PropertyChanged != null)
                  PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
          }
  
          public Resume()
          {
              personal = new PersonalInfo();
              userId = 0;
              certList = new ObservableCollection&lt;CertInfo&gt;();
          }
  
          public PersonalInfo Personal
          {
              get { return personal; }
              set
              {
                  if (value != null)
                  {
                      personal = value;
                      OnPropertyChanged("Personal");
                  }
              }
          }
  
          public int UserId
          {
              get { return userId; }
              set
              {
                  if (value != 0)
                  {
                      userId = value;
                      OnPropertyChanged("UserId");
                  }
              }
          }
  
          public ObservableCollection&lt;CertInfo&gt; CertList
          {
              get { return certList; }
              set
              {
                  if(value != null)
                  {
                      certList = value;
                      OnPropertyChanged("CertList");
                  }
              }
          }
      }
  }
  </code></pre>
  
  <p>Is that correct?</p>
  
  <p>Thanks</p>