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. P>
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. P>
Thanx à l'avance. P>
3 Réponses :
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>
C'est une ancienne question, mais au cas où n'importe qui ait le même problème, voici ma solution:
caliburn.micro.conductor <écran> .Collection.allacacacacactif code>; li>;
- Vos contrôles utilisateur doivent être hérités de
caliburn.micro.screen code>; li>
- Vous devez également garder à l'esprit les conventions de nommage. Si vous utilisez menuduc em> comme nom d'un contenuControl dans votre vue, créez également une propriété nommée menuuc em> dans votre viewModel; li>
- initialiser votre usercontrol comme je le fais dans le constructeur; li>
- Vous pouvez maintenant utiliser
activateItem (menuduc) code> et désactivateItem (menuduc) code> partout dans votre code. Caliburn.micro détecte automatiquement lequel avec lequel vous voulez travailler. LI>
ol>
Exemple de code de vue XAML: P>
blockQuote> xxx pré>
Exemple C # ViewModel Code: P>
blockQuote> xxx pré> dans l'exemple ci-dessus, ChangePanels () code> est une méthode pour charger un nouveau contrôle utilisateur dans votre contenuControl. P> Aussi lisez Cette question A>, cela pourrait vous aider plus loin. p> p>