I have a TreeView with checkboxes, that I'm using with multiple parent and children nodes. I wanted to add the intermediate state (the black box that shows in the parent checkbox when not all the children nodes are checked), so I added the tri-state to the TreeView. Problem is, the tri-state checks the parent node if all children nodes are checked. This behavior is unacceptable in my case and I don't want it to happen. I simply want the parent node to be in an intermediate state if not all children nodes are checked, and to be unchecked other than that, unless the user checks it. Is there any way that this behavior can be achieved? Note that if there is any way besides the tri-state, like overriding the "normal" TreeView to have such a behavior, is welcomed. Please give me a little example - like a demo - of the code if there is any. Thank you in advance