title: Visual DataGridBoolColumn bug in Datagrid when RowHeadersVisible = false
body: <p>I'm using a DataGrid(not DataGridView) and I want to hide the RowHeader. The problem is after I set the property RowHeaderVisible to false, a visual bug appears with DataGridBoolColumn. <a href="https://imgur.com/Mhb5src" rel="nofollow noreferrer">This</a> is the normal state and then once you moved the Checkbox out of the screen to the left and back in it looks like <a href="https://imgur.com/LuunUQz" rel="nofollow noreferrer">this</a>.Putting the RowHeaderWidth to 0 only makes the RowHeader smaler but not invisible. How can I not have a RowHeader and not have this visual bug?</p>
  
  <p>Here is the code i used to fill the DataGrid:</p>
  
  <p>VB:</p>
  
  <pre><code>    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles 
      MyBase.Load
      DataGrid1.TableStyles.Add(New DataGridTableStyle)
      Dim abc As New DataTable
      abc.Columns.Add("a")
      abc.Columns.Add("b")
      abc.Columns.Add("c")
      abc.Columns.Add("Bool", GetType(Boolean))
      abc.Columns.Add("d")
      abc.Columns.Add("e")
      abc.Columns.Add("f", GetType(Boolean))
      abc.Columns.Add("g")
      abc.Columns.Add("h")
      abc.Columns.Add("i")
      abc.Columns.Add("j")
      abc.Columns.Add("k")
      abc.Columns.Add("l")
      abc.Rows.Add({"t", "s", "sef", False, "se", "eff", False, "se", "eff", "efs", "se", "eff", "efs"})
      abc.Rows.Add({"t", "s", "sef", False, "se", "eff", False, "se", "eff", "efs", "se", "eff", "efs"})
      abc.Rows.Add({"t", "s", "sef", False, "se", "eff", False, "se", "eff", "efs", "se", "eff", "efs"})
      abc.Rows.Add({"t", "s", "sef", False, "se", "eff", False, "se", "eff", "efs", "se", "eff", "efs"})
      abc.Rows.Add({"t", "s", "sef", False, "se", "eff", False, "se", "eff", "efs", "se", "eff", "efs"})
      abc.Rows.Add({"t", "s", "sef", False, "se", "eff", False, "se", "eff", "efs", "se", "eff", "efs"})
      For Each tmpColumn As DataColumn In abc.Columns
          Dim oSpalte As DataGridColumnStyle
          If tmpColumn.DataType = GetType(Boolean) Then
              oSpalte = New DataGridBoolColumn
          Else
              oSpalte = New DataGridTextBoxColumn
          End If
          oSpalte.ReadOnly = True
          oSpalte.Width = 100
          oSpalte.MappingName = tmpColumn.ColumnName
          DataGrid1.TableStyles.Item(0).GridColumnStyles.Add(oSpalte)
          DataGrid1.TableStyles.Item(0).MappingName = "Table"
      Next
      Me.DataGrid1.RowHeadersVisible = False
      Me.DataGrid1.PreferredColumnWidth = 200
      Me.DataGrid1.DataSource = abc
  End Sub
  </code></pre>
  
  <p>C#</p>
  
  <pre><code>    private void Form1_Load(object sender, EventArgs e)
          {
  DataGrid1.TableStyles.Add(new DataGridTableStyle());
  DataTable abc = new DataTable();
  abc.Columns.Add("a");
  abc.Columns.Add("b");
  abc.Columns.Add("c");
  abc.Columns.Add("Bool", typeof(bool));
  abc.Columns.Add("d");
  abc.Columns.Add("e");
  abc.Columns.Add("f", typeof(bool));
  abc.Columns.Add("g");
  abc.Columns.Add("h");
  abc.Columns.Add("i");
  abc.Columns.Add("j");
  abc.Columns.Add("k");
  abc.Columns.Add("l");
  abc.Rows.Add(
  {
      "t",
      "s",
      "sef",
      false,
      "se",
      "eff",
      false,
      "se",
      "eff",
      "efs",
      "se",
      "eff",
      "efs"
  });
  abc.Rows.Add(
  {
      "t",
      "s",
      "sef",
      false,
      "se",
      "eff",
      false,
      "se",
      "eff",
      "efs",
      "se",
      "eff",
      "efs"
  });
  abc.Rows.Add(
  {
      "t",
      "s",
      "sef",
      false,
      "se",
      "eff",
      false,
      "se",
      "eff",
      "efs",
      "se",
      "eff",
      "efs"
  });
  abc.Rows.Add(
  {
      "t",
      "s",
      "sef",
      false,
      "se",
      "eff",
      false,
      "se",
      "eff",
      "efs",
      "se",
      "eff",
      "efs"
  });
  abc.Rows.Add(
  {
      "t",
      "s",
      "sef",
      false,
      "se",
      "eff",
      false,
      "se",
      "eff",
      "efs",
      "se",
      "eff",
      "efs"
  });
  abc.Rows.Add(
  {
      "t",
      "s",
      "sef",
      false,
      "se",
      "eff",
      false,
      "se",
      "eff",
      "efs",
      "se",
      "eff",
      "efs"
  });
  foreach (DataColumn tmpColumn in abc.Columns)
  {
      DataGridColumnStyle oSpalte;
      if (tmpColumn.DataType == typeof(bool))
          oSpalte = new DataGridBoolColumn();
      else
          oSpalte = new DataGridTextBoxColumn();
      oSpalte.ReadOnly = true;
      oSpalte.Width = 100;
      oSpalte.MappingName = tmpColumn.ColumnName;
      DataGrid1.TableStyles.Item(0).GridColumnStyles.Add(oSpalte);
      DataGrid1.TableStyles.Item(0).MappingName = "Table";
  }
  this.DataGrid1.RowHeadersVisible = false;
  this.DataGrid1.PreferredColumnWidth = 200;
  this.DataGrid1.DataSource = abc;
  }
  </code></pre>