I am joining this thread because I am interested also in an easier solution than the recommended one.
Answer from xceed: DataGrid cannot do this because it doesn’t know when it has sub items ( loaded at click )
BUT, we, as programmers, know that ( or it is trivially simple to add a boolean property to our VM to indicate if it has or not.
So, what I will recommend is to expose from DataRow a Bindable property (bool) and show or hide the offending + automatically. If no Binding is set via xaml, work as it is today. So it will not disturb anybody.
This will take xceed 1 HR of work, and make us very happy, instead of retemplating the whole DataRow only for that purpose.
We like to be more programmers, and less designers, even xaml makes it easier.
Retemplating something there anyway takes lots amount of time just to map all the colors/brushes/theming and so on.