protected virtual void CreateColumnCollection()
{
VirtualPropertyDescriptorDynamic[] pds = new VirtualPropertyDescriptorDynamic[ColumnCount];
for (int n = 0; n < ColumnCount; n++)
{
pds[n] = new VirtualPropertyDescriptorDynamic(this, n, GetColumnName(n), typeof(string), false);
}
fColumnCollection = new PropertyDescriptorCollection(pds);
}