在 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}}}"
/>
我想引用父视图模型作为命令绑定。 我原以为 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}}}"
/>