8
votes

Comment charger des contrôles de conteneur différents d'une coquille utilisant caliburnmicro

Par défaut lorsque vous utilisez "ActivateItem (nouveau contrôle ());" Votre contrôle est chargé dans un contenuControl qui avec le nom ActiveTem, exemple. . Si j'ai plusieurs contrôles de contenu sur ma page, comment conserveriez-vous la possibilité de conserver la possibilité d'utiliser la fonctionnalité par défaut de pouvoir charger des commandes dans le contrôle de l'élément actif.

Par exemple, je souhaite avoir une commande de connexion pour être chargée dans le contenu de connexionControl, et lorsque un utilisateur se connecter avec succès, je souhaite que un nouveau contrôle soit chargé dans le contenu ActiveItem ContentControl.

Thanx à l'avance.


0 commentaires

3 Réponses :


0
votes

Vous devez regarder des conducteurs d'écran. Voir ici .


0 commentaires

7
votes

Si la vue de vue qui est liée à l'interface utilisateur contient une propriété avec le nom correspondant à un contrôle de contenu. La vue Contrôle du contenu est automatiquement résolue la vue prise en charge par cette propriété, à condition que cette propriété elle-même est un type de vue de la vue et a été enregistré avec un conteneur IOC. Par exemple

<ContentControl x:Name="LoginStatus"></ContentControl>


0 commentaires

4
votes

C'est une ancienne question, mais au cas où n'importe qui ait le même problème, voici ma solution:

  1. Votre fenêtre principale contenant à la fois (ou même plus de deux) de vos contrôles d'utilisateur doit être héritée à partir de caliburn.micro.conductor <écran> .Collection.allacacacacactif ; ;
  2. Vos contrôles utilisateur doivent être hérités de caliburn.micro.screen ;
  3. Vous devez également garder à l'esprit les conventions de nommage. Si vous utilisez menuduc comme nom d'un contenuControl dans votre vue, créez également une propriété nommée menuuc dans votre viewModel;
  4. initialiser votre usercontrol comme je le fais dans le constructeur;
  5. Vous pouvez maintenant utiliser activateItem (menuduc) et désactivateItem (menuduc) partout dans votre code. Caliburn.micro détecte automatiquement lequel avec lequel vous voulez travailler.

    Exemple de code de vue XAML: xxx

    Exemple C # ViewModel Code: xxx

    dans l'exemple ci-dessus, ChangePanels () est une méthode pour charger un nouveau contrôle utilisateur dans votre contenuControl.

    Aussi lisez Cette question , cela pourrait vous aider plus loin.


0 commentaires