title: After removing an element from binded list and select a row in DataGridView, that row is deleted too in Winforms C#
body: <p>I know that title is too long, I will explain the situation: I have data grid view binded to a list:</p>
  
  <pre><code>BindingList&lt;MyViewModel&gt; _list = new BindingList&lt;MyViewModel&gt;
  {
      new MyViewModel{ Num =1 , Val ="test"},
      new MyViewModel{ Num =2 , Val ="test1"},
      new MyViewModel{ Num =3 , Val ="test2"},
  };
  
  dataGridView1.DataSource = _list;
  dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
  dataGridView1.MultiSelect = false;
  </code></pre>
  
  <p>and I binded event to listen to Delete command:</p>
  
  <pre><code> dataGridView1.KeyDown += (s, ev) =&gt;
          {
              if (ev.KeyCode == Keys.Delete)
              {
                  var item = dataGridView1.SelectedRows[0].DataBoundItem as MyViewModel;
  
                  if (item != null)
                  {
                      _list.Remove(item);
  
                      dataGridView1.Rows[0].Selected = true;
                  }
              }
          };
  </code></pre>
  
  <p>and view model looks like:</p>
  
  <pre><code>public sealed class MyViewModel
  {
      public string Val { get; set; }
  
      public int Num { get; set; }
  }
  </code></pre>
  
  <p>In grid I will have 3 items: if I delete item 3, the item 2 is deleted too (or hidden maybe)</p>
  
  <p>Why ?</p>
  
  <p>After delete an item, I want to select first item from data grid <code>dataGridView1.Rows[0].Selected = true;</code>.</p>
  
  <p>If I remove <code>dataGridView1.Rows[0].Selected = true;</code> then is fine, item 2 is visible.</p>