2010-12-15 4 views
2

J'ai ce problème. J'utilise caliburn micro dans WPF. Dans la vue j'ai listbox, et je lie sur l'événement MouseDoubleClick méthode dans view-model. Je voudrais envoyer comme paramètre sélectionné l'élément de la liste. Mais je ne sais pas comment le faire.Envoyer l'élément sélectionné comme paramètre à la méthode dans le modèle de vue [WPF, Caliburn]

vu je ceci:

<ListBox Name="Friends" 
      SelectedItem="Key" 
      Style="{DynamicResource friendsListStyle}" 
      Grid.Row="2" 
      Margin="4,4,4,4" 

      Micro:Message.Attach="[MouseDoubleClick]=[Action SendRp(Key)]" 

      PreviewMouseRightButtonUp="ListBox_PreviewMouseRightButtonUp" 
      PreviewMouseRightButtonDown="ListBox_PreviewMouseRightButtonDown" 
      MouseRightButtonDown="FriendsListBoxMouseRightButtonDown"/> 

Dans le modèle de vue j'ai cette méthode:

public void SendRp(string key) 
    { 
     MessageBox.Show(key); 
    } 

Toute avance, merci.

Répondre

4

Je ne sais pas beaucoup sur Caliburn mais je pense que vous devez écrire

Micro:Message.Attach="[MouseDoubleClick]=[Action SendRp(Friends.SelectedItem)]" 

aussi vous devez soit omettre le SelectedItem="Key" ou utiliser un liant à votre ViewModel comme ceci:

SelectedItem="{Binding Key}" 

désolé à l'avance si mon poste est complètement faux en raison de mon manque de connaissance de calibrage

+0

Ok, mais votre solution ne fonctionne pas, même j'essaye d'abord puis j'ai écrit cette question. –

+0

ok, j'ai vu j'ai fait une erreur, s'il vous plaît essayez avec Micro: Message.Attach = "[MouseDoubleClick] = [Action SendRp (Friends.SelectedItem)]" – thumbmunkeys

+0

Merci, c'est du travail! –

Questions connexes