2010-01-31 2 views
0

Je m'excuse pour le titre pauvres, je ne sais pas comment l'expliquer autrement.Modifier le sous-formulaire basé sur l'option sélectionnée dans C# WPF Projet

J'ai une interface comme this (désolé, je ne peux pas poster une image directement comme je suis nouveau).

Et je veux avoir les contrôles d'affichage du côté droit en fonction de la sélection de l'arbre sur la gauche. Quel est le moyen le plus simple de le faire dans un projet WPF? Y a-t-il une meilleure façon de s'y prendre?

Merci!

Répondre

1

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); 
} 
+0

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

0

Vous devez utiliser le formulaire MDI. Ajoutez votre contrôleur treeview dedans. Dans les gestionnaires d'événements treeview, vous pouvez afficher le sous-formulaire en fonction de l'élément sélectionné. Assurez-vous de définir la propriété "MdiParent" du sous-formulaire au format MDI.

Questions connexes