web-dev-qa-db-fra.com

Comment passer listbox selecteditem comme paramètre de commande dans un bouton?

Voici ma situation:

<ListBox ItemsSource="{Binding Path=AvailableUsers}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=Id}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
<Button Command="{Binding Path=Load}" CommandParameter={???? What goes here ????}/>

Ce que je veux, c'est transmettre l'ID actuellement sélectionné dans la ListBox. J'ai un modèle de vue dans les coulisses qui ressemble essentiellement à ceci:

public class ViewModel : DependencyObject
{
    ICommand Load { get; set; }

    // dependency property but I didn't bother to write it out like one
    List<User> AvailableUsers { get; set}
}

Comment envoyer l'élément actuellement sélectionné en utilisant le xaml?

39
Price Jones

Essaye ça:

  1. Nommez votre listbox
  2. Mettez à jour le CommandParameter à:

    CommandParameter = "{Binding ElementName = listBox1, Path = SelectedItem}"

65
mohammad jannesary