Please refer to the attached screenshot. To reproduce: public Form1() { InitializeComponent(); DataTable dt = new DataTable(); dt.Columns.Add("Id", typeof(int)); dt.Columns.Add("Name", typeof(string)); for (int i = 0; i < 5; i++) { dt.Rows.Add(i, "Item" + i); } Random rand = new Random(); DataTable dt2 = new DataTable(); dt2.Columns.Add("Id", typeof(int)); dt2.Columns.Add("Name2", typeof(string)); dt2.Columns.Add("ParentId", typeof(int)); for (int i = 0; i < 20; i++) { dt2.Rows.Add(i, "Child Item" + i, rand.Next(0, 5)); } radGridView1.DataSource = dt; radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; GridViewTemplate template = new GridViewTemplate(); template.DataSource = dt2; template.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; radGridView1.MasterTemplate.Templates.Add(template); template.Columns["ParentId"].IsVisible = false; GridViewRelation relation = new GridViewRelation(radGridView1.MasterTemplate); relation.ChildTemplate = template; relation.RelationName = "MasterDetail"; relation.ParentColumnNames.Add("Id"); relation.ChildColumnNames.Add("ParentId"); radGridView1.Relations.Add(relation); this.radGridView1.EnableFiltering = true; this.radGridView1.ShowFilteringRow = false; this.radGridView1.ShowHeaderCellButtons = true; } Workaround: change the Name property of the column in order to avoid duplicated columns: template.Columns["Name"].Name = "Name2";