如何解决Xamarin Forms 忽略来自 StackLayout 上 DataType 的按钮绑定
<StackLayout Padding="10" x:DataType="model:Light">
<StackLayout HorizontalOptions="FillAndExpand" Grid.Column="0" Grid.Row="1">
<Label Text="{Binding Name}" LineBreakMode="Nowrap" Style="{DynamicResource ListItemTextStyle}" FontSize="24" HorizontalOptions="StartAndExpand" VerticalOptions="StartAndExpand"/>
</StackLayout>
<StackLayout HorizontalOptions="FillAndExpand" Grid.Column="1" Grid.Row="1" >
<Button Text="{Binding Enabled}" Command="{Binding ToggleLight}" CommandParameter="{Binding .}" HorizontalOptions="CenterandExpand"></Button>
</StackLayout>
</StackLayout>
如何在我的 Button 表单上排除 Command="{Binding ToggleLight}"
和 StackLayout 上定义的 x:DataType="model:Light"
?
解决方法
使用binding-path。
- 在 StackLayout 之外定义“x:Name”(StackLayout、Grid、ListView 等)
- 为 StackLayout 内的 Command 绑定添加“x:Reference”
- 该命令被排除。
喜欢:
<Grid x:Name="WhateverParent">
<StackLayout x:DataType="model:Light">
<Button ... Command="{Binding Path=BindingContext.ToggleLight,Source={x:Reference WhateverParent}}" />
</StackLayout>
</Grid>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。