title: how to update listbox items with INotifyPropertyChanged
body: <p>I have a listbox which is databound to a collection of objects.
  I want to modify the way the items are displayed to show the user which one of these objects is the START object in my program.</p>
  
  <p>I tried to do this the following way, but the listbox does not automatically update.
  Invalidating the control also didn't work.</p>
  
  <p>The only way I can find is to completely remove the databindings and add it back again. but in my case that is not desirable.</p>
  
  <p>Is there another way?</p>
  
  <pre><code>class Person : INotifyPropertyChanged
  {
      public event PropertyChangedEventHandler PropertyChanged;
  
      private string _name;
      public string Name
      {
          get
          {
              if (PersonManager.Instance.StartPerson == this)
                  return _name + " (Start)";                      
              return _name;
          }
          set
          {
              _name = value;
              if (PropertyChanged != null)
                  PropertyChanged(this, new PropertyChangedEventArgs("Name"));
          }
      }
  
      public Person(string name)
      {
          Name = name;
      }
  }
  </code></pre>
  
  <p>This is the class wich manages the list and the item that is the start</p>
  
  <pre><code>class PersonManager
  {
      public BindingList&lt;Person&gt; persons { get; set; }
      public Person StartPerson { get; set; }
  
      private static PersonManager _instance;
      public static PersonManager Instance
      {
          get
          {
              if (_instance == null)
              {
                  _instance = new PersonManager();
              }
              return _instance;
          }
      }
  
      private PersonManager()
      {
          persons = new BindingList&lt;Person&gt;();
      }
  }
  </code></pre>
  
  <p>In the form I use the following code</p>
  
  <pre><code>    private void button1_Click(object sender, EventArgs e)
      {
          PersonManager.Instance.StartPerson = (Person)listBox1.SelectedItem;
      }
  </code></pre>