// Pedro MartÃnez Juliá <pedromj@gmail.com>
//
-
-#if NET_2_0
-
+using System.Collections;
using System.ComponentModel;
using System.Drawing.Design;
using System.Drawing;
public DataGridViewComboBoxColumn ()
{
CellTemplate = new DataGridViewComboBoxCell();
+ ((DataGridViewComboBoxCell) CellTemplate).OwningColumnTemplate = this;
SortMode = DataGridViewColumnSortMode.NotSortable;
autoComplete = true;
displayStyle = DataGridViewComboBoxDisplayStyle.DropDownButton;
[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
public override DataGridViewCell CellTemplate {
get { return base.CellTemplate; }
- set { base.CellTemplate = value as DataGridViewComboBoxCell; }
+ set {
+
+ DataGridViewComboBoxCell cellTemplate = value as DataGridViewComboBoxCell;
+ if (cellTemplate == null)
+ throw new InvalidCastException ("Invalid cell tempalte type.");
+
+ cellTemplate.OwningColumnTemplate = this;
+ base.CellTemplate = cellTemplate;
+ }
}
[AttributeProvider (typeof (IListSource))]
}
}
+ internal void SyncItems (IList items)
+ {
+ if (DataSource != null || DataGridView == null)
+ return;
+
+ for (int i = 0; i < DataGridView.RowCount; i++) {
+ DataGridViewComboBoxCell comboCell = DataGridView.Rows[i].Cells[base.Index] as DataGridViewComboBoxCell;
+ if (comboCell != null) {
+ comboCell.Items.ClearInternal ();
+ comboCell.Items.AddRangeInternal (this.Items);
+ }
+ }
+ }
+
public override object Clone ()
{
DataGridViewComboBoxColumn col = (DataGridViewComboBoxColumn) base.Clone();
}
}
-
-#endif