WPF: comment puis-je charger les contrôles de l'utilisateur de façon dynamique?
Comment puis-je charger WPF fonction de contrôle de l'utilisateur dans WPF fenêtre dynamiquement (à l'aide du code à l'exécution)?
Vous devez vous connecter pour publier un commentaire.
Je recommande fortement d'avoir un coup d'oeil à Prism, depuis des interfaces utilisateur composites est ce que c'est. Cependant, puisque ce serait vous obliger refactoring l'ensemble de votre demande, je vais aussi répondre directement à votre question.
Si vous voulez qu'un seul contrôle de l'utilisateur dans un récipient, mettre un ContentControl dans votre XAML et puis définissez la propriété de Contenu. Si vous utilisez un modèle de vue, vous pouvez lier le Contenu d'un FrameworkElement de propriété sur le modèle de vue:
Si vous voulez des commandes multiples dans une liste, utilisez un ItemsControl et de lui attribuer une ObservableCollection<> à la propriété ItemsSource. Si vous utilisez un modèle de vue, vous pouvez lier ItemsSource à une ObservableCollection de propriété sur le Modèle de Vue.
Alors vous pouvez simplement ajouter/supprimer des points de vue à partir de ce ObservableCollection:
Pour ajouter plusieurs commandes dont vous avez besoin conteneur.
Supposons que vous avez un conteneur StackPanel "myStack"
Vous pouvez créer de manière dynamique et l'ajouter dans le récipient. Voir le code ci-dessous
Ou de l'utilisation de la liaison. Voici un exemple brut montrant comment les différents contrôles WPF peut être indiqué dans une seule fenêtre WPF utilisant ContentControl et de liaison (qui est ce que une boîte à outils comme Prisme ou de Caliburn Micro n').
XAML:
Code: