title: Multi value CheckedComboBoxcell Should be shown on Datagridview without validation error
body: <p>I am trying to implement a <em>Multi Value CheckBox ComboBox</em> in a <code>DataGridView</code>. To some extend it is successful, but when I leave editing the cell validation it is throwing an error.</p>
  
  <p>Here is a snapshot of my source code:
  <a href="https://drive.google.com/file/d/1Z3OeYZdfEa3ONaM7166TBxUYfMAhLPvB/view?usp=sharing" rel="nofollow noreferrer">My source code is here at Google.Drive</a></p>
  
  <p>Suggestions for improvement are welcome.
  screenshot 1
  <a href="https://i.stack.imgur.com/ub4GJ.png" rel="nofollow noreferrer">combobox selection is ok in datagridview</a></p>
  
  <p>screenshot 2
  <a href="https://i.stack.imgur.com/GkG30.png" rel="nofollow noreferrer">validation error when i change focus to other cells</a></p>
  
  <pre><code>    using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Windows.Forms;
  
  namespace PresentationControls
  {
  
     public class CheckedComboCell : DataGridViewComboBoxCell   //DataGridViewTextBoxCell            // 
      {
         public CheckBoxComboBox cboxg;
  
  
          public CheckedComboCell()
          : base()
          {
  
  
  
          }
  
  
          public override void InitializeEditingControl(int rowIndex, object
                  initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
          {
              // Set the value of the editing control to the current cell value.
              base.InitializeEditingControl(rowIndex, initialFormattedValue,dataGridViewCellStyle);
  
  
             string ss= initialFormattedValue.ToString();
              ss = ss.Replace(" ", string.Empty);
  
              List&lt;string&gt; result = ss.Split(',').ToList();
  
              CheckBoxComboBox chkcb = DataGridView.EditingControl as CheckBoxComboBox;
  
              cboxg = chkcb;
  
              CheckBoxComboBoxItemList ccc = chkcb.CheckBoxItems;
  
              if (chkcb.CheckBoxItems.Count&gt;0)
              foreach(string s in result)
              {
  
                  //    if(s!="")
                 // chkcb.CheckBoxItems[s].Checked = true;
  
  
                  }
              else
              {
  
              }
  
  
          }
          public override Type EditType
          {
              get
              {
  
                  // Return the type of the editing control 
                  Type kk = typeof(CheckBoxComboBox);
                  return kk;
              }
          }
  
  
          // Type of this cell's value.
          private static Type defaultValueType = typeof(System.String);
  
          public override Type ValueType
          {
  
              get
              {
                  Type valueType = base.ValueType;
                  if (valueType != null)
                  {
                      return valueType;
                  }
                  return defaultValueType;
              }
          }
  
  
  
  
          private string label;
  
          public string Label
          {
              get
              {
                  return label;
              }
              set
              {
                  label = value;
              }
  
          }
  
  
  
          public object list { get; set; }
          public string[] DataSource { 
  
                  set {
  
  
  
                  if (cboxg != null)
                      cboxg.DataSource = value;
  
  
              }
                       }
  
          protected override bool SetValue(int rowIndex, object value)
          {
              if (value != null)
              {
                  this.ErrorText = "bbbb";
                  bool bb = base.SetValue(rowIndex, value);
                  return bb;
              }
  
  
              return false;
          }
  
  
  
  
  
  
  
      }
  
  }
  </code></pre>