To reproduce: add a RadTreeView and a timer. Use the following code: BindingList<Item> list = new BindingList<Item>(); public Form1() { InitializeComponent(); this.radTreeView1.TreeViewElement.CreateNodeElement += TreeViewElement_CreateNodeElement; for (int i = 0; i < 10; i++) { list.Add(new Item(Guid.NewGuid().ToString(), "Node" + i)); } this.radTreeView1.DataSource = list; this.radTreeView1.DisplayMember = "Title"; this.radTreeView1.ValueMember = "UniqueIdentifier"; this.radTreeView1.TreeViewElement.AutoSizeItems = true; this.timer1.Start(); } void TreeViewElement_CreateNodeElement(object sender, Telerik.WinControls.UI.CreateTreeNodeElementEventArgs e) { e.NodeElement = new CustomTreeNodeElement(); } public class Item: System.ComponentModel.INotifyPropertyChanged { public Item(string uniqueIdentifier, string title) { this._uniqueIdentifier = uniqueIdentifier; this._title = title; } public string UniqueIdentifier { get { return this._uniqueIdentifier; } set { this._uniqueIdentifier = value; OnPropertyChanged("UniqueIdentifier"); } } public string Title { get { return this._title; } set { this._title = value; OnPropertyChanged("Title"); } } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } private string _uniqueIdentifier; private string _title; } public class CustomContentElement : TreeNodeContentElement { StackLayoutElement nodeContentContainer; LinePrimitive lineElement; LightVisualElement idElement; RadTextBoxControlElement textBoxElement; protected override Type ThemeEffectiveType { get { return typeof(TreeNodeContentElement); } } protected override void InitializeFields() { base.InitializeFields(); this.Margin = new Padding(5, 5, 5, 5); this.StretchHorizontally = true; } public override void Synchronize() { this.DrawFill = true; TreeNodeElement treeNodeElement = this.NodeElement; RadTreeNode node = treeNodeElement.Data; Item dataItem = (Item)node.DataBoundItem; if (dataItem != null) { this.idElement.Text = string.Empty + dataItem.UniqueIdentifier; this.textBoxElement.Text = string.Empty + dataItem.Title; } } protected override void CreateChildElements() { nodeContentContainer = new StackLayoutElement(); nodeContentContainer.Orientation = Orientation.Vertical; nodeContentContainer.StretchHorizontally = true; nodeContentContainer.StretchVertically = false; idElement = new LightVisualElement(); idElement.ShouldHandleMouseInput = false; idElement.NotifyParentOnMouseInput = true; idElement.StretchVertically = false; this.nodeContentContainer.Children.Add(idElement); lineElement = new LinePrimitive(); lineElement.BackColor = Color.Black; lineElement.Margin = new Padding(10, 0, 10, 0); lineElement.StretchVertically = false; this.nodeContentContainer.Children.Add(lineElement); textBoxElement = new RadTextBoxControlElement(); textBoxElement.TextChanged += textBoxElement_TextChanged; textBoxElement.Margin = new Padding(20, 3, 20, 3); textBoxElement.StretchVertically = false; this.nodeContentContainer.Children.Add(textBoxElement); this.Children.Add(nodeContentContainer); } private void textBoxElement_TextChanged(object sender, EventArgs e) { RadTextBoxControlElement tb = sender as RadTextBoxControlElement; CustomContentElement contentElement = tb.Parent.Parent as CustomContentElement; Item item = contentElement.NodeElement.Data.DataBoundItem as Item; if (item.Title != tb.Text) { item.Title = tb.Text; } } } public class CustomTreeNodeElement : TreeNodeElement { protected override TreeNodeContentElement CreateContentElement() { return new CustomContentElement(); } protected override Type ThemeEffectiveType { get { return typeof(TreeNodeElement); } } } private void timer1_Tick(object sender, EventArgs e) { foreach (Item item in list) { item.Title = "Node " + DateTime.Now.ToLongTimeString(); } }