How to reproduce: public partial class RadForm1 : Telerik.WinControls.UI.RadForm { private BindingList<TreeViewDataObject> data; public static int Id = 0; public RadForm1() { InitializeComponent(); var theme = new FluentTheme(); ThemeResolutionService.ApplicationThemeName = theme.ThemeName; this.data = new BindingList<TreeViewDataObject>(); for (int i = 1; i <= 5; i += 1) { Id++; TreeViewDataObject root = new TreeViewDataObject() { Id = Id, ParentId = -1, Name = "Root: " + i }; this.data.Add(root); for (int j = 1; j <= 3; j++) { Id++; TreeViewDataObject child = new TreeViewDataObject() { Id = Id, ParentId = root.Id, Name = "Child: " + Id }; this.data.Add(child); for (int K = 1; K <= 5; K++) { Id++; TreeViewDataObject c = new TreeViewDataObject() { Id = Id, ParentId = child.Id, Name = "Child: " + Id }; this.data.Add(c); } } } this.radTreeView1.DataSource = this.data; this.radTreeView1.DisplayMember = "Name"; this.radTreeView1.ParentMember = "ParentId"; this.radTreeView1.ChildMember = "Id"; this.radTreeView1.RelationBindings.Add(new RelationBinding(this.data, "Name", "ParentId", "Id")); this.radTreeView1.ExpandAll(); this.radTreeView1.TreeViewElement.AllowEdit = true; this.radTreeView1.TreeViewElement.AllowAdd = true; this.radTreeView1.TreeViewElement.AllowRemove = true; } } public class TreeViewDataObject { public int Id { get; set; } public int ParentId { get; set; } public string Name { get; set; } } Workaround: Handle the ContextMenuOpening event and add logic for creating a new record in the data source object public partial class RadForm1 : Telerik.WinControls.UI.RadForm { private BindingList<TreeViewDataObject> data; private int id = 0; public RadForm1() { InitializeComponent(); var theme = new FluentTheme(); ThemeResolutionService.ApplicationThemeName = theme.ThemeName; this.data = new BindingList<TreeViewDataObject>(); for (int i = 1; i <= 5; i += 1) { id++; TreeViewDataObject root = new TreeViewDataObject() { Id = id, ParentId = -1, Name = "Root: " + i }; this.data.Add(root); for (int j = 1; j <= 3; j++) { id++; TreeViewDataObject child = new TreeViewDataObject() { Id = id, ParentId = root.Id, Name = "Child: " + id }; this.data.Add(child); for (int K = 1; K <= 5; K++) { id++; TreeViewDataObject c = new TreeViewDataObject() { Id = id, ParentId = child.Id, Name = "Child: " + id }; this.data.Add(c); } } } this.radTreeView1.DataSource = this.data; this.radTreeView1.DisplayMember = "Name"; this.radTreeView1.ParentMember = "ParentId"; this.radTreeView1.ChildMember = "id"; this.radTreeView1.RelationBindings.Add(new RelationBinding(this.data, "Name", "ParentId", "id")); this.radTreeView1.ExpandAll(); this.radTreeView1.ContextMenuOpening += RadTreeView1_ContextMenuOpening; this.radTreeView1.TreeViewElement.AllowEdit = true; this.radTreeView1.TreeViewElement.AllowAdd = true; this.radTreeView1.TreeViewElement.AllowRemove = true; } private void RadTreeView1_ContextMenuOpening(object sender, TreeViewContextMenuOpeningEventArgs e) { TreeViewDefaultContextMenu treeMenu = e.Menu as TreeViewDefaultContextMenu; treeMenu.Items.Remove(treeMenu.AddMenuItem); RadMenuItem item = new RadMenuItem("&New"); item.Click -= Item_Click; item.Click += Item_Click; treeMenu.Items.Insert(2, item); } private void Item_Click(object sender, EventArgs e) { RadTreeNode parent = this.radTreeView1.SelectedNode; if (parent == null || parent.DataBoundItem == null) { return; } this.id++; BindingList<TreeViewDataObject> data = this.radTreeView1.DataSource as BindingList<TreeViewDataObject>; TreeViewDataObject newObject = new TreeViewDataObject() { Id = this.id, ParentId = ((TreeViewDataObject)parent.DataBoundItem).Id, Name = "New Name" }; parent.Expanded = true; data.Add(newObject); } } public class TreeViewDataObject { public int Id { get; set; } public int ParentId { get; set; } public string Name { get; set; } }