title: Filter Bound DataGridView by Unbound Column
body: <p>I have a <code>DataGridView</code> bounded to a <code>DataTable</code> from a DataSet.xsd. I added by code one additional column called <code>_RowString</code> to the <code>DataGridView</code>. It contains a string composed by all the string values contained into the other columns of the <code>DataTable</code> and I want to use that column to filter the <code>DataGridView</code>.</p>
  
  <p>My first approach was based on adding the <code>_RowString</code> column directly to my <code>DataTable</code> and not to the <code>DataGridView</code>. But this caused some problems when I needed to insert or update a record, because adding and calculating the column on the <code>DataTable</code> <strong>caused the</strong> <code>RowState</code> <strong>value of all the</strong> <code>DataTable</code> <strong>rows to be</strong> <code>Changed</code> <strong>and so the</strong> <code>TableAdapterManager.UpdateAll(DataSet)</code> <strong>method was always updating all the records!</strong></p>
  
  <p>I know that I can use a <code>BindingSource</code> to filter the <code>DataGridView</code> like I was doing before:</p>
  
  <pre><code>BindingSource.Filter = String.Format("[_RowString] LIKE '%{0}%'", FilterTextBox.Text);
  </code></pre>
  
  <p>But for the reason explained above, I don't want to add the <code>_RowsString</code> column to my <code>DataTable</code> object.</p>
  
  <p>How can I filter the <code>DataGridView</code> using the <code>_RowString</code> unbound column without using a <code>BindingSource</code> and/or adding the <code>_RowString</code> column to my <code>DataTable</code> object?</p>
  
  <p>Otherwise, is there a way to add a column to my <code>DataTable</code> <strong>without</strong> changing the <code>RowState</code> value?</p>