The behavior you have encountered is expected. When a RadTreeViewItem is being expanded, then the generation of its child items starts. So setting IsChecked in code behind for an unrealized item won't work.
The best approach in such situations is to use ViewModels. In the ViewModel you can have boolean property (or ToggleState property) that you can bind to the RadTreeViewItem's IsChecked or CheckState property via ContainerBindings. Then you can change the properties in the ViewModel dynamically and the binding will work when the items are being generated. Please let us know if you need further assistance.
the Telerik team
Thank you for being the most amazing .NET community! Your unfailing support is what helps us charge forward!
We'd appreciate your vote for Telerik in this year's DevProConnections Awards. We are competing in mind-blowing 20 categories and every vote counts! VOTE for Telerik NOW >>