作为命令参数传递的 WPF SelectedItem 没有 return 值

WPF SelectedItem passed as a command parameter doesn't return value

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

在我的视图模型中 Ratings 是:

public ObservableCollection<RatingModel> Ratings;

并且 DeleteRatingCommand 是一个 ICommand 对象。

此视图中显示了一整套评分(包含信息的网格),每个评分都有一个删除按钮。当按下相应评级的按钮时,我想将评级对象发送到具有 SelectedItem 属性 的视图模型。尽管调用了绑定方法,但 SelectedItem 参数没有传递任何内容,具体是 null 值。在这种情况下,如何正确使用 SelectedItem 将有关要删除哪个评级的信息发送到视图模型?还有其他可能吗?我不确定这种做法是否正确。

我假设单击按钮实际上并没有设置 SelectedItem 属性。

尝试更改对行上下文数据的绑定。

CommandParameter="{Binding Path=.}"