xamarin 如何显示同时支持 Andriod 和 iOS 的多列网格



我想创建一个包含四列的列表视图,前两列将具有文本,接下来的两列将具有可单击的按钮(图像(。行数不是固定的,因此需要数据绑定。应该支持安卓和iOS。请建议哪种 Xamarin 控件最适合我。

我是否可以使用 https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/templates/data-templates/selector/中所示的数据模板

或应使用网格、网格布局或任何其他。

======== 应用的解决方案===

==========
<ListView x:Name="listViewExpenses" CachingStrategy="RecycleElement" VerticalOptions="FillAndExpand" RowHeight="40">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="40"/>
</Grid.ColumnDefinitions>
<!--<Label x:Name="idLabel" Text="{Binding Id}"/>-->
<Label x:Name="textLabel1" Grid.Column="0" Text="{Binding Text}"/>
<!--<Button x:Name="btnEdit" Image="icon.png" HeightRequest="50" WidthRequest="50"  Grid.Column="2" CommandParameter="{Binding Id}"  Clicked="OnEditClicked" />-->
<StackLayout Grid.Column="1">
<Image Source="EditRed.png" VerticalOptions="Center" >
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="OnEditTapped" 
CommandParameter="{Binding Id}"/>
</Image.GestureRecognizers>
</Image>
</StackLayout>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>`enter code here`

=======================================谢谢

@paul

由于行数不是固定的,但每行看起来都一样,我建议使用带有内联数据模板的列表视图。

https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/templates/data-templates/creating/

您提到的数据模板在不同的行视图的情况下是必需的。对于您的情况,网格应该就足够了。您可以动态添加行,例如如下所示

https://forums.xamarin.com/discussion/42393/need-to-add-rows-dynamically-in-a-grid

如果这不起作用,您可以将ListView与自定义单元格一起使用

https://developer.xamarin.com/guides/xamarin-forms/user-interface/listview/customizing-cell-appearance/

最新更新