To reproduce: public Form1() { InitializeComponent(); this.radTreeView1.NodesNeeded+=radTreeView1_NodesNeeded; } private void radTreeView1_NodesNeeded(object sender, Telerik.WinControls.UI.NodesNeededEventArgs e) { Console.WriteLine("NodesNeeded"); } As a result StackOverFlowException is thrown. Workaround: Do not subscribe to the NodesNeeded event if the LazyMode property is set to false.
The NodesNeeded event should always fire when a node does not have already added children. The following article describes the desired behavior in FullLazyMode and PartialLazyMode: http://www.telerik.com/help/winforms/treeview-data-binding-load-on-demand.html