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); }