在 MAUI 中将命令绑定到父视图模型
Posted
技术标签:
【中文标题】在 MAUI 中将命令绑定到父视图模型【英文标题】:Binding a command to a parent view model in MAUI 【发布时间】:2022-01-09 15:59:05 【问题描述】:我想将父视图模型引用为命令绑定。 我原以为 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 绑定的特定文档?
【问题讨论】:
【参考方案1】:在第一个 sn-p 中,您缺少一个逗号和一个超出需要的右大括号:
<Button Text="Do it"
Command="Binding Path=SelectTab,
RelativeSource=RelativeSource AncestorType=x:Type ParentPage"
/>
【讨论】:
这是一个复制粘贴错误,我得到相同的语法错误,括号数正确 您是否在“SelectTab”之后插入了逗号? 确实,这是主要问题。我还得换成Source=RelativeSource AncestorType=x:Type ParentPage
以上是关于在 MAUI 中将命令绑定到父视图模型的主要内容,如果未能解决你的问题,请参考以下文章
Rails:在 HABTM 关系中将子项从大型记录集添加到父模型的 UI