Thank you so much for the update, however, after applying this to the sample you gave earlier in this thread (and after a few modifications such as applying an mvvm approach and populating it through code rather than manually setting it up on xaml), I've encountered tons of new problems:
1. Only the first row's toggle triangle button is hidden, I could see the toggle triangle button on all other rows.
2. If you drag the first row (that has the hidden toggle button) and simply let go of it after moving it a few pixels, the collapse toggle triangle button appears again
3. If I spam click my own toggle button (This is not a replacement to toggle the main row, this does something else on my main program), there are two more problems happening. It's difficult to reproduce it though, sometimes they appear after a few clicks, sometimes it's after numerous ones:
3.a. The "textblock" with the name bound to it turns into a "textbox", yes a "textbox", for some reason it turns into a textbox where you could manually change the name which is definitely something I don't want, in fact I used a textblock for this specific reason, I just want to show the name property, I don't want the users changing anything.
3.b. I get a "System.ArgumentOutOfRangeException" error.
4. All the rows are still not permanently expanded
5. The user still has the ability to toggle expanding the tier 1 rows, I've made it clear on the earlier replies that I need this tree view adv to Auto collapse every row and DON'T ALLOW the user to un-collapse it.