title: DataGridView.SelectionChanged event firing when BindingSource.SuspendBindings() turned on
body: <p>In the following sample, I create a collection of objects and bind them to a DataGridView.  When the button is clicked, I .SuspendBinding, then remove all the records, then .ResumeBinding.  The DataGridView1_SelectionChanged event is fired when I remove { m_dataSource.RemoveAt(pos) } the selected row of the Grid.  Why is this?  I would think that .SuspendBinding() would stop any events from firing through to the grid.  If not, what is the point of .SuspendBinding()?</p>
  
  <p>Thanx.</p>
  
  <pre><code>Imports System.ComponentModel
  </code></pre>
  
  <p>Public Class Form1</p>
  
  <pre><code>Private m_dataSource As New BindingList(Of BusinessObjects.Person)
  
  
  Private Sub DataGridView1_SelectionChanged(sender As System.Object, e As System.EventArgs) Handles DataGridView1.SelectionChanged
  
      Label1.Text = String.Format("SelectionChanged {0}", Date.Now.ToShortTimeString)
  
  End Sub
  
  Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      LoadData()
  End Sub
  
  Private Sub LoadData()
  
      Dim tempPerson As BusinessObjects.Person
  
      tempPerson = New BusinessObjects.Person() With {.PersonID = 1, .FirstName = "a", .LastName = "b"}
      m_dataSource.Add(tempPerson)
  
      tempPerson = New BusinessObjects.Person() With {.PersonID = 2, .FirstName = "c", .LastName = "d"}
      m_dataSource.Add(tempPerson)
  
      BindingSource1.DataSource = m_dataSource
  
  End Sub
  
  Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  
      BindingSource1.SuspendBinding()
  
      Dim pos As Int32
  
      For pos = m_dataSource.Count - 1 To 0 Step -1
          m_dataSource.RemoveAt(pos)
      Next
  
      BindingSource1.ResumeBinding()
  
  End Sub
  </code></pre>
  
  <p>End Class</p>