2013-08-15 8 views
33

Ecco la mia situazione:Come passare listbox selecteditem come parametro di comando in un pulsante?

<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 ????}/> 

Quello che voglio è quello di passare l'ID che è attualmente selezionato nella casella di riepilogo. Ho un ViewModel dietro le quinte sembra che essenzialmente come questo:

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} 
} 

Come posso inviare l'elemento selezionato utilizzando il XAML?

risposta

55

Prova questo:

  1. Nome tua casella di riepilogo
  2. Aggiornare il CommandParameter a:

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

+2

Che ha funzionato. Grazie. –

Problemi correlati