Xamarin - CollectionView,将当前项目作为命令参数传递

Red*_*edZ 4 xaml xamarin

我有一个绑定到 ObservableCollection 的 CollectionView,在视图的每一行内我有一个 (LIKE/UNLIKE) 按钮,当单击该按钮时,将调用 ViewModel 上的命令,该命令应读取 ID + 状态(按钮选中/未选中)以确定它是否应该执行 LIKE 或 UNLIKE API 调用。我的问题是,如何将当前项目(按钮的父行)作为命令参数(产品类型)传递?

这是我的 XAML:

<CollectionView ItemsSource="{Binding Products}" SelectionMode="Single" SelectedItem="{Binding SelectedProduct , Mode=TwoWay}" RemainingItemsThreshold="{Binding ItemsThreshold}" RemainingItemsThresholdReachedCommand="{Binding LoadProductsCommand}" BackgroundColor="Fuchsia">
                <CollectionView.ItemsLayout>
                    <GridItemsLayout Orientation="Vertical" VerticalItemSpacing="10"></GridItemsLayout>
                </CollectionView.ItemsLayout>
                <CollectionView.ItemTemplate>
                    <DataTemplate>
                        <Frame BorderColor="Black" BackgroundColor="Green" HeightRequest="100" Padding="0" Margin="0 , 10" HasShadow="True">
                            <Grid Padding="0">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="*"></RowDefinition>
                                    <RowDefinition Height="*"></RowDefinition>
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*"></ColumnDefinition>
                                    <ColumnDefinition Width="*"></ColumnDefinition>
                                </Grid.ColumnDefinitions>

                                <Image Source="{Binding photo_1}" Aspect="AspectFill" Grid.Row="0" Grid.Column="0"></Image>

                                <StackLayout Grid.Row="1" Grid.Column="1" BackgroundColor="Yellow" HorizontalOptions="End">
                                    <button:SfButton Text="HEART" IsCheckable="True" IsChecked="{Binding liked}" Command="{Binding Source={x:Reference MyProductsPage} , Path=BindingContext.LikeCommand}" CommandParameter="{Binding ???}"></button:SfButton>
                                    <Label Text="{Binding total_likes}" HorizontalTextAlignment="Center"></Label>
                                </StackLayout>

                            </Grid>
                        </Frame>
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>
Run Code Online (Sandbox Code Playgroud)

Jac*_*Hua 6

就像这样绑定:

<button:SfButton Text="HEART" IsCheckable="True" IsChecked="{Binding liked}" Command="{Binding Source={x:Reference MyProductsPage} , Path=BindingContext.LikeCommand}" CommandParameter="{Binding .}"></button:SfButton>
Run Code Online (Sandbox Code Playgroud)

这是代码示例:ContactView