/// <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 GetFormattedValue /// </summary> /// <param name="value"></param> /// <param name="rowIndex"></param> /// <param name="cellStyle"></param> /// <param name="valueTypeConverter"></param> /// <param name="formattedValueTypeConverter"></param> /// <param name="context"></param> /// <returns></returns> protected override object GetFormattedValue(object value, int rowIndex, ref DataGridViewCellStyle cellStyle, TypeConverter valueTypeConverter, TypeConverter formattedValueTypeConverter, DataGridViewDataErrorContexts context) { String result = String.Empty; if (value != Convert.DBNull) { Dictionary <String, Object> parsedValues = value as Dictionary <String, Object>; String[] keys = new String[parsedValues.Keys.Count]; parsedValues.Keys.CopyTo(keys, 0); Array.Sort <String>(keys); DataGridViewCheckBoxComboBoxColumn config = this.OwningColumn as DataGridViewCheckBoxComboBoxColumn; foreach (String key in keys) { result = String.Format(CultureInfo.CurrentCulture, "{0}{1}{2}", result, config.TextSeparator, key); } } if (!String.IsNullOrEmpty(result)) { result = result.Substring(2, result.Length - 2); } return(result); }
/// <summary> /// Clone override is needed in order to store custom properties set in Designer /// </summary> /// <returns></returns> public override object Clone() { DataGridViewCheckBoxComboBoxColumn col = base.Clone() as DataGridViewCheckBoxComboBoxColumn; col.DisplayMemberSingleItem = this._displayMemberSingleItem; col.TextSeparator = this._textSeparator; return(col); }