title: DataBinding of DataGridView and List<> with BindingSource
body: <p>I'm trying to figure out how data binding with <code>BindingSource</code> is supposed to work 
  I want a <code>DataGridView</code> to be populated with the content of a <code>List&lt;&gt;</code> upon update of the list. </p>
  
  <p>I can see the <code>List</code> grow and verify it's being filled when I check the debugger. I thought the <code>BindingSource</code> would fire an event when the <code>List</code> is changed. But none of the available is fired. How do I become notified when the underlying list is changed?</p>
  
  <p>I follow the instructions and have the following test code:</p>
  
  <pre><code>    Data d;
      BindingSource bs;
  
      public Form1()
      {
          InitializeComponent();
          bs = new BindingSource();
          d = new Data();
      }
  
      private void Form1_Load(object sender, EventArgs e)
      {
          bs.DataSourceChanged += new EventHandler(bs_DataSourceChanged);
          bs.ListChanged += new ListChangedEventHandler(bs_ListChanged);
          bs.DataMemberChanged += new EventHandler(bs_DataMemberChanged);
          bs.CurrentChanged += new EventHandler(bs_CurrentChanged);
          bs.CurrentItemChanged += new EventHandler(bs_CurrentItemChanged);
  
          bs.DataSource = d.list;
          dataGridView1.DataSource = bs;
      }
      // ... all the handling methods caught with a break point in VS.
  
      private void button1_Click(object sender, EventArgs e)
      {
          d.addOneItem();
      }
  </code></pre>