/// <summary> /// TODO: Documentation InitializeEditingControl /// </summary> /// <param name="rowIndex"></param> /// <param name="initialFormattedValue"></param> /// <param name="dataGridViewCellStyle"></param> public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle) { base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle); DataGridViewCheckBoxComboBoxControl control = this.DataGridView.EditingControl as DataGridViewCheckBoxComboBoxControl; DataGridViewCheckBoxComboBoxColumn config = this.OwningColumn as DataGridViewCheckBoxComboBoxColumn; control.DisplayMemberSingleItem = config.DisplayMemberSingleItem; control.TextSeparator = config.TextSeparator; foreach (CheckBoxComboBoxItem item in control.CheckBoxItems) { item.Checked = false; } if (this.Value != Convert.DBNull) { Dictionary <String, Object> values = this.Value as Dictionary <String, Object>; foreach (String key in values.Keys) { control.CheckBoxItems[key].Checked = true; } } control.BeginInvoke(new MethodInvoker(control.ShowDropDown)); }
/// <summary> /// TODO: Documentation DetachEditingControl /// </summary> public override void DetachEditingControl() { DataGridViewCheckBoxComboBoxControl control = this.DataGridView.EditingControl as DataGridViewCheckBoxComboBoxControl; control.BeginInvoke(new MethodInvoker(control.HideDropDown)); base.DetachEditingControl(); }
/// <summary> /// TODO: Documentation ParseFormattedValue /// </summary> /// <param name="formattedValue"></param> /// <param name="cellStyle"></param> /// <param name="formattedValueTypeConverter"></param> /// <param name="valueTypeConverter"></param> /// <returns></returns> public override object ParseFormattedValue(object formattedValue, DataGridViewCellStyle cellStyle, TypeConverter formattedValueTypeConverter, TypeConverter valueTypeConverter) { DataGridViewCheckBoxComboBoxControl control = this.DataGridView.EditingControl as DataGridViewCheckBoxComboBoxControl; Dictionary <String, Object> parsedValues = new Dictionary <String, Object>(); foreach (CheckBoxComboBoxItem item in control.CheckBoxItems) { if (item.Checked) { if (control.DataSource.GetType() == typeof(ListSelectionWrapper <Object>)) { parsedValues.Add(item.Text, (item.ComboBoxItem as ObjectSelectionWrapper <Object>).Item); } else { parsedValues.Add(item.Text, item.ComboBoxItem); } } } return(parsedValues); }