This is an interesting problem. I think that probably you will need to create a custom control that subclasses TreeViewItemand add a couple of dependency properties that the parent class does not provide.
TreeViewItem ItemsControl, Selector, SelectedItem SelectedIndex. . SelectedItem: , IsSelected , , Items , SelectedItem . SelectedIndex .
, - , - , 1, 0 TreeViewItem, , SelectedIndex ActualHeight, , , .
, , . , , SelectedItem . ( .) , , , SelectedItem null Parent . 1, 0 , , SelectedItem .
, , IsSelected : .
, , .