我对 Xamarin BindingContext 感到困惑

I have a Xamarin BindingContext quandary

我创建了一个自定义 CheckBox 控件,并向其添加了 Command/CommandParameter 功能。我尝试使用 Behavior 和 运行 解决同样的问题。这是我的 XAML:

`

<ContentPage.Content>
    <CollectionView ItemsSource="{Binding MyShoppingList}" 
                    SelectionMode="None"
                    EmptyView="No items in your Shopping List">
        <CollectionView.ItemTemplate>
            <DataTemplate>
                <Grid Padding="0" ColumnDefinitions="30, *, 200">
                    <controls:CheckBoxEx x:Name="CompletedCheckBox"
                                IsChecked="{Binding Completed, Mode=TwoWay}" 
                                Command="{Binding ToggledCommand}"                                    
                                CommandParameter="{Binding .}"
                                HorizontalOptions="Center" 
                                VerticalOptions="Center" />
                    <Label Text="{Binding ItemName}"  Grid.Column="1" HorizontalOptions="StartAndExpand" VerticalOptions="Center"/>
                    <Label Text="{Binding StoreName}" Grid.Column="2" HorizontalOptions="EndAndExpand" VerticalOptions="Center"/>
                </Grid>
            </DataTemplate>
        </CollectionView.ItemTemplate>
    </CollectionView>
</ContentPage.Content>

`

我的 CollectionView 的 BindingContext 显然是我的 ViewModel; MyShoppingList 是在 ViewModel 中创建的 ObservableCollection。 CheckBox IsChecked 值作为已完成 属性 位于我的模型中。但是,找不到命令,因为 CollectionView 显然将 BindingContext 从 ViewModel 更改为 Model,因此已正确绑定 Completed、ItemName 和 StoreName 属性。如何将 Command 与 ViewModel 相关联,以便 Binding 正确发生?该命令的目的是触发数据库更新。这是我看到的运行时错误:

[0:] 绑定:'ToggledCommand' 属性 未在 'ShoppingList.Models.ShoppingListItem' 上找到,目标 属性:'GLLCustomControls.CheckBoxEx.Command'

像这样的东西应该可以工作

Command="{Binding Source={RelativeSource AncestorType={x:Type vm:ShoppingListViewModel}}, Path=ToggledCommand}"

Xamarin 文档有 multiple examples 个更复杂的绑定场景