如何在ListView中创建带有数据绑定的Grid?我正在使用Xamarin.Forms创建此应用程序。
如果我不知道我需要多少行和列,我如何在ListView绑定中动态创建Grid?
这是我目前掌握的情况:
<ListView x:Name="List" HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Grid Padding="10,10,10,10">
<Grid.RowDefinitions>
<RowDefinition Height="200"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackLayout BackgroundColor="#313FA0" Grid.Row="0" Grid.Column="0" HeightRequest="200" WidthRequest="200">
<Label Text="{Binding NUMBER}" FontSize="50" TextColor="White" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"/>
<Label Text="{Binding NAME}" FontSize="30" TextColor="White" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand"/>
</StackLayout>
</Grid>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
在这段代码中,只创建了一行和一列。如果我有多个数据点,我该如何解决这个问题?例如,如果我需要一行两列。
3条答案
按热度按时间70gysomp1#
您也可以使用下一种方法例如(通过xaml,正面)。
1rhkuytd2#
在XAML中,没有一种好方法可以动态生成行数或列数可变的网格布局。我建议在代码隐藏文件中创建DataTemplate,在该文件中,您可以根据需要轻松添加任意数量的RowDefinition和ColumnDefinition。下面是一个示例:
然后将此DataTemplate分配给您的ListView。
w6mmgewl3#
如果你想动态添加行和列,你可以在
page.cs
中创建一个网格,并将其绑定到page.xaml
中。假设你有一个项目数组,并想在网格中对它们进行排序: