2010-04-24 10 views
1

Je ne fais que commencer avec la lumière MVVM, mais jusqu'à présent cela m'a permis de résoudre certains de mes problèmes. Malheureusement, je me bats avec des problèmes relativement sime dans Silverlight.Comment affecter RelayCommand aux événements Click ou SelectedIndexChanges?

Supposons que le bouton ci-dessous avec EventToCommand:

<i:Interaction.Triggers> 
<i:EventTrigger EventName="MouseEnter"> 
<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding UpdateAccountsCommand, Mode=OneWay}" CommandParameter="{Binding SelectedIndex, ElementName=lstLedgers}"/> 
</i:EventTrigger> 
</i:Interaction.Triggers> 
</Button> 

Comment attribuer ce code à l'événement SelectedIndexChanged?

Autre numéro - comment affecter une commande en code C#? Le problème est le suivant: Je développe l'application Windows Phone 7. La barre d'application doit être lancée en C# (pour autant que je sache, il n'y a pas de code xaml pour la barre d'application à ce stade). Par conséquent je n'ai aucune idée comment lier une commande à un bouton de chauve-souris d'application dedans C#, maintenant xaml.

Merci d'avance de votre aide.

Répondre

0

Comment attribuer ce code à l'événement SelectedIndexChanged

Le nom de l'événement est en première ligne de XAML de la gâchette. Le EventName est ce qui déclenche quelque chose à se produire. Vous devez vous assurer que vous avez ce déclencheur sur un objet avec un événement SelectedIndexChanged. Le bouton n'a pas cet événement.

... 
<i:EventTrigger EventName="SelectedIndexChanged"> 
... 

Si vous violez MVVM pour la barre d'application, je ne sais pas pourquoi vous voulez créer un déclencheur. Vous pouvez aussi bien suivre la route directe en accédant aux événements que vous voulez directement. Vous pouvez le faire, ne vous méprenez pas ... juste ce code est beaucoup plus propre:

ApplicationBarButton.Click += new RoutedEventHandler(OnApplicationBarButton_Click); 
+0

Compte tenu de la barre d'application - le problème est que un événement Cliquez augmente. Je ne sais pas comment lier une méthode à partir du modèle de vue, car la vue ne voit pas du tout la couche du modèle de vue! En xaml je pourrais y passer par liaison, mais dans C# je suis perdu. – Hikari

+0

La réponse était si proche :) http://blog.galasoft.ch/archive/2010/04/09/using-commands-with-applicationbarmenuitem-and-applicationbarbutton-in-windows-phone-7.aspx – Hikari