I remove it:
void OnColumnRemoved(BaseGridColumn column, GridLayout gridLayout, Guid controllerID)
{
if (this.gridLayout == gridLayout && this.controllerID == controllerID)
{
this.Columns.Items.Remove(this.Columns.FieldMapColumnFromFieldName(column.FieldName));
RebuildColumnCache();
}
}
private void RebuildColumnCache()
{
columnCache.Clear();
foreach (Column c in this.Columns.Items)
{
if (c.Visible)
columnCache.Add(c.FieldName, this.Columns.FieldMapIndexOf(c));
else
columnCache.Add(c.FieldName, this.Columns.GetColumnIndex(c));
}
if (ColumnCacheChanged != null)
ColumnCacheChanged();
}