2012-01-10 2 views
2

cette question peut sembler stupide. Je veux faire une page de connexion en éditant le modèle dans VS2010 avec Prism 4.0 comme modèle. comme une page de connexion, il aura 2 zone de texte, un est nom d'utilisateur et un autre est mot de passe. en un clic, je veux que ce bouton récupère les deux valeurs. actuellement, cela n'arrive pas, car il porte juste 1 valeur. je suis nouveau à ce MVVM. Si je mets le code dans la partie vue, cela pourrait peut-être violer le modèle.conception de connexion dans le prisme 4.0

cela fait partie du code (à partir du modèle)

<Button prism:Click.Command="{Binding Login}" 
    prism:Click.CommandParameter="{Binding Username}" Margin="2"           
    ToolTipService.ToolTip="Click to navigate to the Edit View for this item."      IsCancel="True" IsDefault="False"><Image Height="20" Width="20" Source="/Module1;component/Images/NavigateToView.png" /> 
    </Button> 

Répondre

1

Vous pouvez créer deux nouvelles propriétés dans votre modèle de vue et de lier vos zones de texte pour les en XAML

<TextBox Text={Binding Username, Mode=TwoWay} /> 
<TextBox Text={Binding Password, Mode=TwoWay} /> 

Puis, votre implémentation de la commande Login, vous pouvez simplement utiliser ces propriétés, car elles reflètent les données que l'utilisateur a saisies dans les zones de texte. De cette façon, vous n'avez pas besoin d'utiliser un paramètre de commande non plus.

+0

Je l'ai fait, mais cette façon semble seulement affecter le front sans passer les données –

+0

@ct_anas Essayez de définir 'Mode = TwoWay' dans la liaison (j'ai mis à jour ma réponse en conséquence). –

+0

ok.noted. maintenant, j'ai besoin d'accéder à la valeur du nom d'utilisateur, mot de passe. après avoir utilisé la liaison dans xaml. j'ai besoin d'utiliser getbindingexpression, ai-je raison? Mon problème est maintenant, je suis dans la page moduleviewmodel, comment vais-je importer la zone de texte que j'utilise dans la page de vue? –