<ScrollViewer VerticalScrollBarVisibility="Auto">
<ListBox x:Name="RootListView" ItemsSource="{Binding Ratings}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
.... Some TextBoxes with Labels are here to fill the grid .....
<Button Grid.Row="4" Grid.Column="1" Content="Delete"
Command="{Binding ElementName=RootListView, Path=DataContext.DeleteRatingCommand}"
CommandParameter="{Binding ElementName=RootListView, Path=SelectedItem}">
</Button>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
Où Ratings
dans mon modèle de vue est le suivant:WPF SelectedItem passé en tant que paramètre de commande ne retourne pas la valeur
public ObservableCollection<RatingModel> Ratings;
Et le DeleteRatingCommand
est un objet ICommand
.
Il y a toute une collection de classements affichés dans cette vue (une grille contenant des informations), chacun a un bouton de suppression. Lorsque le bouton de la note correspondante est pressé, je veux envoyer l'objet de notation au modèle de vue avec la propriété SelectedItem
. Bien que la méthode liée soit appelée, rien n'est passé avec le paramètre SelectedItem, une valeur null
spécifiquement. Comment puis-je utiliser correctement SelectedItem
dans ce cas pour envoyer des informations au modèle de vue sur la classification à supprimer? Y a-t-il d'autres possibilités? Je ne suis pas sûr que cette approche soit correcte.
C'est exactement ce que j'ai imaginé. Vous pouvez même le simplifier à 'CommandParameter =" {Binding} "' – yoger