Idéalement, vous utiliseriez le modèle de conception MVVM pour ce faire, mais si vous cherchez un moyen simple et facile de le faire fonctionner, vous pouvez essayer ceci ... Créer UserControls pour être les différents sous-formulaires, et les jeter dans un cadre. Vous pouvez également utiliser une grille, mais un cadre vous permet d'utiliser la navigation (avant, arrière) si vous en avez besoin.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="5"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<GridSplitter Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Right"/>
<!--TreeView Code Here-->
<TreeView x:Name="treeView" SelectedItemChanged="TreeView_SelectedItemChanged">
<TreeViewItem Header="Devices" IsExpanded="True">
<TreeViewItem Header="Device 1" Tag="UserControl1.xaml"/>
<TreeViewItem Header="Device 2" Tag="UserControl2.xaml"/>
<TreeViewItem Header="Device 3" Tag="UserControl3.xaml"/>
</TreeViewItem>
<TreeViewItem Header="Users" IsExpanded="True">
<TreeViewItem Header="Add" Tag="UserControl4.xaml"/>
<TreeViewItem Header="Edit/Delete" Tag="UserControl5.xaml"/>
</TreeViewItem>
</TreeView>
<!--Frame to hold your subform (UserControl)-->
<Frame x:Name="SubForm" Grid.Column="2" NavigationUIVisibility="Hidden"/>
</Grid>
CodeBehind:
private void TreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
TreeViewItem item = (TreeViewItem)treeView.SelectedItem;
SubForm.Source = new Uri(item.Tag.ToString(), UriKind.RelativeOrAbsolute);
}
Merci beaucoup pour votre réponse. Cela me pointe dans la bonne direction et me donne quelques options. Je vais aussi me pencher sur le modèle de conception MVVM. - À votre santé! – Cam