Sounds like you're trying to put together a Master / Detail view? Where MasterView contains TreeView of all detailed representations.
So ViewModels looks something like this:
public class DataListViewModel
{
public DataDetailViewModel[] AllData {get;}
}
public class DataDetailViewModel
{
public Data Model {get;}
public DataListViewModel Parent {get;}
}
If it is more or less accurate, then you have a pretty simple way ahead of yourself and what you need to do is to first select View or ViewModel.
The first time you select View, you can use the DataTemplate for the TreeView, which will control the TreeViews element.
<DataTemplate x:Key="dataTemplate">
<my:DataDetailView DataContext="{Binding Path=.}" />
</DataTemplate>
Just make sure your view has a default constructor.
ViewModel TemplateSelector, View out, . , , , Detail.
. http://www.switchonthecode.com/tutorials/wpf-tutorial-how-to-use-a-datatemplateselector