title: Keep data highlighted (selected) in a DataGridView after filtering the BindingSource
body: <p>I have a DataTable that is attached to a DataGridView via BindingSource.
  My grid (and data) are dynamic - the BindingSource has a filter rule and every second, one value is changed and the filter is applied on its parent row. For example:</p>
  <p>for a table:</p>
  <pre><code>id    name    status
  --    ----    ------
  100   aaaa    false
  200   bbbb    false
  300   cccc    false
  </code></pre>
  <p>and a filter rule:</p>
  <pre><code>&quot;status = false&quot;
  </code></pre>
  <p>after changing status=true to id number 200 and refreshing the DataGridView, the new shown table is:</p>
  <pre><code>id    name    status
  --    ----    ------
  100   aaaa    false
  300   cccc    false
  </code></pre>
  <p>Now, let's say id 300 is at row 300 in the DataTable. If I want it to be the first displayed row, I can use DataGridView.FirstDisplayedScrollingRowIndex = 300, but after applying the filter, it will no longer be at row #300 in the DataGrid, it will be at row #299 since id 200 was filtered out.
  How can I keep the row with id 300 to be the first row shown in the DataGridView?</p>