在 MAUI 中将命令绑定到父视图模型

Binding a command to a parent view model in MAUI

我想引用父视图模型作为命令绑定。 我原以为 MAUI 语法会像 Xamarin 一样工作,但我收到以下错误:

这是我试过的语法:

    <ContentPage ... x:Class="ParentPage" x:DataType="ParentViewModel" x:Name="Parent">
        <StackLayout>
            <ListView ItemsSource="{Binding Tabs}">
                <ListView.ItemTemplate>
                    <DataTemplate x:DataType="TabViewModel">
                        <ViewCell>
                            <Button Text="Do it"
                                Command="{Binding Path=SelectTab
                                    RelativeSource={RelativeSource AncestorType={x:Type ParentPage}}}" />
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
    </ContentPage>



Or:
    <ContentPage ... x:Class="ParentPage" x:DataType="ParentViewModel" x:Name="Parent">
        <StackLayout>
            <ListView ItemsSource="{Binding Tabs}">
                <ListView.ItemTemplate>
                    <DataTemplate x:DataType="TabViewModel">
                        <ViewCell>
                            <Button Text="Do it"
                                Command="{Binding Path=SelectTab
                                    Source={x:Reference Parent}}" />
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
    </ContentPage>

这个语法有什么问题?

是否有针对 MAUI 绑定的特定文档?

在第一个代码段中,您少了一个逗号并且多了一个右大括号:

<Button Text="Do it"
    Command="{Binding Path=SelectTab, 
                      RelativeSource={RelativeSource AncestorType={x:Type ParentPage}}}"
/>