public DataBoundObjectCollection(DataTable dataTable) { this._dataTable = dataTable; this._rowsWrapper = new ReadOnlyDataRowCollectionWrapper(this._dataTable.Rows); PropertyDescriptor[] properties = new PropertyDescriptor[dataTable.Columns.Count]; for (int index = 0; index < dataTable.Columns.Count; index++) { DataColumn column = dataTable.Columns[index]; properties[index] = new ColumnPropertyDescriptor( column.ColumnName, index, !column.AllowDBNull || !column.DataType.IsValueType ? column.DataType : typeof(Nullable <>).MakeGenericType(column.DataType) ); } this.Properties = new PropertyDescriptorCollection(properties, true); this._rowIndices = new Dictionary <DataRow, int>(dataTable.Rows.Count); foreach (DataRow row in dataTable.Rows) { this.Add(new DataBoundObject(this, row.ItemArray)); this._rowIndices.Add(row, this._rowIndices.Count); } this.CustomTypeDescriptor = new DataBoundTypeDescriptor(this.Properties); this._dataTable.RowChanged += this.DataTable_RowChanged; this._dataTable.TableCleared += this.DataTable_TableCleared; this._dataTable.RowDeleted += this.DataTable_RowDeleted; this._dataTable.ColumnChanged += this.DataTable_ColumnChanged; }
public TwoDARowTypeDescriptor(DataRow row) { if (row == null) { throw new ArgumentNullException("row"); } this.row = row; doc = (TwoDADocument)row.Table.ExtendedProperties[typeof(TwoDADocument)]; var properties = new List <PropertyDescriptor>(); foreach (DataColumn column in row.Table.Columns) { TwoDASchema.Column schemaColumn = null; if (doc.Schema != null) { schemaColumn = doc.Schema.Columns.FirstOrDefault(sc => sc.Name == column.ColumnName); } var property = new ColumnPropertyDescriptor(column, schemaColumn); properties.Add(property); } this.properties = new PropertyDescriptorCollection(properties.ToArray(), true); }
public ViewColumn(IViewContext viewContext, ColumnPropertyDescriptor columnPropertyDescriptor, DataGridViewCell cellTemplate) : base(cellTemplate) { ViewContext = viewContext; ColumnPropertyDescriptor = columnPropertyDescriptor; SortMode = DataGridViewColumnSortMode.Automatic; if (columnPropertyDescriptor != null) { HeaderText = columnPropertyDescriptor.DisplayName; DataPropertyName = columnPropertyDescriptor.Name; Name = columnPropertyDescriptor.Name; } }
public ViewColumn(IViewContext viewContext, ColumnPropertyDescriptor columnPropertyDescriptor) : this(viewContext, columnPropertyDescriptor, new ViewCell()) { }