To reproduce: public Form1() { InitializeComponent(); GridViewDecimalColumn idColumn = new GridViewDecimalColumn("ID"); radGridView1.MasterTemplate.Columns.Add(idColumn); GridViewDecimalColumn parentIdColumn = new GridViewDecimalColumn("ParentID"); radGridView1.MasterTemplate.Columns.Add(parentIdColumn); GridViewTextBoxColumn nameColumn = new GridViewTextBoxColumn("Name"); radGridView1.MasterTemplate.Columns.Add(nameColumn); GridViewTextBoxColumn addressColumn = new GridViewTextBoxColumn("Address"); radGridView1.MasterTemplate.Columns.Add(addressColumn); GridViewTextBoxColumn typeColumn = new GridViewTextBoxColumn("Type"); radGridView1.MasterTemplate.Columns.Add(typeColumn); radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; this.radGridView1.Relations.AddSelfReference(this.radGridView1.MasterTemplate, "ID", "ParentID"); AddNewRow("1", null, "Project", "USA", "Project"); AddNewRow("2", "1", "Site 1", "New York", "Site"); AddNewRow("3", "2", "Bldg 1", "Road 1", "Building"); AddNewRow("4", "1", "Site 2", "New York", "Site"); AddNewRow("5", "4", "Bldg 2", "Road 2", "Building"); AddNewRow("20", "3", "Floor 1", "Road 20", "Floor"); AddNewRow("30", "3", "Floor 2", "Road 30", "Floor"); AddNewRow("40", "3", "Floor 3", "Road 40", "Floor"); } public void AddNewRow( params object[] values) { if (values.Length != radGridView1.Columns.Count) return; GridViewRowInfo newRow = radGridView1.Rows.AddNew(); newRow.Cells[0].Value = values[0]; newRow.Cells[1].Value = values[1]; newRow.Cells[2].Value = values[2]; newRow.Cells[3].Value = values[3]; newRow.Cells[4].Value = values[4]; } When you run the project you will notice that the last row is missing (AddNewRow("40", "3", "Floor 3", "Road 40", "Floor");). Please refer to the attached screenshots. Workaround: use the Rows.Add(params) method instead: