As I know NodesChecked event is triggered every time a checkbox is toggled.
My example: I have tree structure:
-- parent
-- child1
-- child2
All elements are checked initially. When I uncheck "child1" NodesChecked returns ["child1"] with IsChecked = true. But when I check it again NodesChecked returns ["parent","child1","child2"] and all of them has IsChecked = true. I need to know for sure which nodes state was changed.