public override DataGridColumnsPage.ColumnItem[] CreateColumns(PropertyDescriptorCollection fields) { ArrayList list = new ArrayList(); IEnumerator enumerator = fields.GetEnumerator(); while (enumerator.MoveNext()) { PropertyDescriptor current = (PropertyDescriptor) enumerator.Current; if (BaseDataList.IsBindableType(current.PropertyType)) { BoundColumn runtimeColumn = new BoundColumn { HeaderText = current.Name, DataField = current.Name }; DataGridColumnsPage.ColumnItem item = new DataGridColumnsPage.BoundColumnItem(runtimeColumn); item.LoadColumnInfo(); list.Add(item); } } return (DataGridColumnsPage.ColumnItem[]) list.ToArray(typeof(DataGridColumnsPage.ColumnItem)); }