예제 #1
0
            /// <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));
            }
예제 #2
0
            /// <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);
            }
예제 #3
0
        /// <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);
        }