Hello Brian Nguyen,
When the TreeView is virtualized it only keeps enough items to display the contents of the Viewport. The TreeView in fact delays the checking of these items and you should find them in the CheckedItems collection on the TreeView.
If the CheckedState is not databound, the TreeView will make sure that the items outside the Viewport are update once they are recreated.
When there is databinding though, it takes precedence over the value we think should be assigned. Then it is expected that the ViewModel will provide the correct value and it should not be overriden. This is necessary in the cases where the checked value changes when the items are outside the Viewport and we have no notification of the event.
I can suggest updating the checked state of your child items in code once you receive a notification that a parent has been checked.
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking
system and vote to affect the priority of the items.