private void SetNewDataSource(DataTable subTable, DataGridView wingrid)
{
var vw = new DataView(subTable);
wingrid.DataSourceChanged -= this.DataSourceChanged;
wingrid.DataSource = vw;
var newCols = new List<DataGridViewColumn>();
var visibility = new List<bool>();
foreach (DataGridViewColumn col in wingrid.Columns)
{
var newCol = (Activator.CreateInstance(col.GetType())) as DataGridViewColumn;
newCol.DataPropertyName = col.DataPropertyName;
newCol.HeaderText = col.HeaderText;
newCol.Visible = col.Visible;
visibility.Add(col.Visible);
newCols.Add(newCol);
}
wingrid.Columns.Clear();
wingrid.Columns.AddRange(newCols.ToArray());
//for (var i = 0; i < visibility.Count; i++)
// wingrid.Columns[0].Visible = visibility[i];
wingrid.DataSourceChanged += this.DataSourceChanged;
}