2010-07-14 2 views
1

J'ai besoin d'aide pour développer une interface utilisateur WPF. Je suis nouveau à WPF. Jusqu'à présent, j'ai lu de nombreux tutoriels et j'ai décidé de suivre un modèle de conception MVVM. Ce que je veux accomplir peut sembler simple: Il y a un ComboBox au début d'une fenêtre. Il est intégré dans une grille avec deux lignes. Maintenant, je veux que le contenu de la deuxième rangée dépende de la sélection de la ComboBox. Cette deuxième rangée doit occuper environ le quart de la page. Le Combobox n'offre pas trop de choix. De préférence je voudrais échanger non seulement une étiquette par exemple mais tout le contenu de cette partie de la fenêtre.Comment échanger dynamiquement du contenu de fenêtre dans WPF

Espérons que les gars avez l'idée ...

Cette illustration peut aider:

______________ 
|Source: File | 
|--------------| 
|  _______ | 
|File:|C:\... || 
|  |_______|| 
|    | 
|______________| 


__________________ 
|Source: Database | 
|------------------| 
|  _________ | 
|Host:|localhost| | 
|  |_________| | 
|  _________ |    
|Port:|1521| | | 
|  |_________| | 
|__________________| 

Peut-être qu'il est possible de définir une grille pour chaque sous-page et les échanger dynamiquement en fonction de la sélection ComboBox?

Merci pour le temps et l'effort à l'avance Toby

Répondre

3

La première chose qui me vient à l'esprit:

Si vous remplissez votre combobox en XAML, mettre des contrôles correspondant à l'étiquette du produit combobox. Ensuite, il suffit de lier le contenu de votre deuxième ligne à SelectedItem.Tag:

<ContentControl Grid.Row="1" Content="{Binding ElementName=comboBox1, Path=SelectedItem.Tag}" /> 
+0

Merci beaucoup pour votre réponse rapide et utile! De toute façon, par curiosité: Y a-t-il aussi un moyen de faire la même chose si je veux remplir la ComboBox de Code-Behind? – Toby

+0

Il existe plusieurs façons d'y parvenir. Vous pouvez définir la propriété Tag sur un élément configuré en XAML ou afficher les contrôles appropriés à l'aide de code-behind ou écrire un ValueConverter qui définit la visibilité des contrôles en fonction de la sélection ComboBox ou DataTrigger pour afficher le contrôle correspondant. –

Questions connexes