在Xamarin.Forms3.5中,微软向我们介绍了可绑定的布局,它可以用于动态填充布局(例如:StackLayout
、Grid
等)。
在一个只有一列的网格中使用这个方法非常简单:
<Grid BindableLayout.ItemsSource="{Binding Items}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<Label Text="{Binding MyProperty}"/>
</DataTemplate>
</BindableLayout.ItemTemplate>
</Grid>
现在我的问题是,由于DataTemplate
只允许一个视图作为内容,如何使用它来填充一个包含多个列的网格。当然,我可以在其中添加另一个Grid
,但这将完全抵消Grid
中可绑定布局的价值。
4条答案
按热度按时间ymdaylpp1#
现在我的问题是,由于DataTemplate只允许一个视图作为内容,如何使用它来填充一个包含多个列的网格。
从Bindable Layouts可以看出:
如果你还想多列,我建议你可以使用StackLayout,它也可以满足你的要求。
dbf7pr2w2#
检查this issue,似乎你想要完成的事情不能用使用网格作为元素的绑定布局来完成。
然而,文档并不像它应该的那样清晰。
iszxjhcz3#
您可以订阅BindingContextChanged事件并配置所有项目。您必须在事件之后以编程方式配置网格定义。
gcuhipw94#
这可以通过属性绑定到
Grid.Row
和Grid.Column
来解决,例如