Commande passer le paramètre à la méthode dans ViewModel dans WPF?
Je suis en train de passer CommandParameter
à la méthode dans mon ViewModel
.
Comment faire cela?
private void Open(object sender)
{
if (sender==this.objMainWindow.btnHistory)
{
objMainWindow.Container.Child = objHistory;
}
if (sender == this.objMainWindow.btnNew_Item)
{
objMainWindow.Container.Child = objNewItem;
}
if (sender == this.objMainWindow.btnSide_Effects)
{
objMainWindow.Container.Child = objSideEffect;
}
}
C'est mon meyhod dans ViewModel
que je veux passer CommandParameter
. J'utilise CommandParameter
pour le bouton.
OriginalL'auteur Mahsa | 2015-08-18
Vous devez vous connecter pour publier un commentaire.
"ViewModel" implique MVVM. Si vous êtes en train de faire MVVM vous ne devriez pas être en train de passer de vues dans les modèles de vue. Généralement, vous faites quelque chose comme cela dans votre XAML:
Et puis ce, à votre avis, modèle:
Évidemment, c'est juste pour illustrer ce point, si vous n'aviez qu'une propriété à modifier appelé ViewModelItem alors vous n'avez pas besoin de passer dans comme un paramètre de la commande.
C'est juste de la mise en œuvre de notification de modification de propriété MVVM Lite utilise auquel vous pouvez ajouter via NuGet (dériver votre modèle de vue de ViewModelBase). Il existe de nombreuses autres façons de le faire si y compris ceux indiqués ici et here.
OriginalL'auteur Mark Feldman
Si vous êtes un particulier pour transmettre des éléments à viewmodel Vous pouvez utiliser
OriginalL'auteur Justin CI
Juste en utilisant la syntaxe de Liaison de Données. Par exemple,
Non seulement pouvons-nous utiliser la Liaison de Données pour obtenir des données à partir de Modèles de Vue, mais aussi de transmettre des données à Afficher les Modèles. Dans CommandParameter, doivent utiliser ElementName de déclarer la source de liaison explicitement.
OriginalL'auteur John Zhu
Personnellement, j'ai simplement utiliser le .Attribut de balise comme suit:
Puis dans l'ordre pour obtenir l'ensemble de l'objet:
Et c'est quoi? @prêt.burger
Marque de la réponse ci-dessous montre une grande mise en œuvre de mvvm et à l'aide d'un relais de commande. Votre point de vue, le contrôle peut alors se lier à la commande et vous êtes en mesure de spécifier une propriété pour le paramètre de la commande. Bien que votre méthode fonctionne, il n'est pas le mvvm approche.
Merci pour le commentaire.. Il ne fait que quelques mois que je travaille avec WPF et je n'ai pas souvent de savoir ce que la pratique est. Trouvez encore Mark approche un peu complexe. Merci quand même
OriginalL'auteur Matteo Gariglio