По сути TreeView должен работать как TabControl, только данные (включая контролы, не только текст) должны выводиться в другой части окна. Само окно разбито на несколько частей через DockPanel, слева у меня TreeView, который биндится к списку нодов, но не понимаю, как сделать биндинг из другой панели и использовать текущий нод как ключ.
<DockPanel>
<ScrollViewer DockPanel.Dock="Top">
<TextBlock Text="Top"/>
</ScrollViewer>
<ScrollViewer DockPanel.Dock="Bottom">
<TextBlock Text="Bottom"/>
</ScrollViewer>
<!-- Сам TreeView -->
<ScrollViewer DockPanel.Dock="Left" MinWidth="160">
<StackPanel>
<TextBlock Text="Menu"/>
<TreeView Items="{Binding Menu}">
<TreeView.ItemTemplate>
<TreeDataTemplate ItemsSource="{Binding Nodes}">
<TextBlock Text="{Binding Name}"/>
</TreeDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</StackPanel>
</ScrollViewer>
<ScrollViewer DockPanel.Dock="Right" MinWidth="160">
<Grid ColumnDefinitions="*" RowDefinitions="*,*">
<TextBlock Grid.Column="0" Grid.Row="0" Text="Table 1"/>
<TextBlock Grid.Column="0" Grid.Row="1" Text="Table 2"/>
</Grid>
</ScrollViewer>
<!-- Здесь должны быть страницы -->
<Border>
<ScrollViewer>
<TextBlock Text="Center"/>
</ScrollViewer>
</Border>
</DockPanel>