我需要对项目进行分组,分组将从 Catalog 属性完成,然后我必须有一个自定义标题,其中包含一些包含这些项目的信息,例如:
这段代码显示了屏幕上的所有信息,但我无法操纵每个属性的值,它们是统一的并垂直对齐显示。
<syncfusion:SfListView ItemsSource="{Binding ListaCarrinhos}" BackgroundColor="White" AutoFitMode="DynamicHeight" VerticalOptions="FillAndExpand" >
<syncfusion:SfListView.DataSource>
<data:DataSource>
<data:DataSource.GroupDescriptors>
<data:GroupDescriptor PropertyName="Catalogo" />
<data:GroupDescriptor PropertyName="QtdTotal" />
<data:GroupDescriptor PropertyName="ValorTotal" />
</data:DataSource.GroupDescriptors>
</data:DataSource>
</syncfusion:SfListView.DataSource>
<syncfusion:SfListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout BackgroundColor="Black">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="15" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
</Grid>
<Label Grid.Row="0" Grid.Column="0" x:Name="label" Text="{Binding Key}" TextColor="White" HeightRequest="30" VerticalOptions="Center" VerticalTextAlignment="Center" Margin="10,0,0,0" />
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</syncfusion:SfListView.GroupHeaderTemplate>
<syncfusion:SfListView.ItemTemplate>
<DataTemplate>
<ViewCell >
<StackLayout BackgroundColor="LightGray">
<Grid Margin="1" RowSpacing="0" BackgroundColor="White">
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="75" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="62" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Source="{Binding Imagem, Converter={StaticResource Base64ParaImagem}}"
WidthRequest="60"
MinimumWidthRequest="60"
HorizontalOptions="Center">
</Image>
<Label Grid.Row="0" Grid.Column="1" TextColor="Gray" Text="{Binding Descricao}" BackgroundColor="White" HorizontalOptions="Start" VerticalOptions="Center" Margin="10,2,0,0"/>
如果我那样使用它,屏幕上不会显示任何信息,但是用黑色背景定义的 StackLayout 会增加尺寸。
<syncfusion:SfListView ItemsSource="{Binding ListaCarrinhos}" BackgroundColor="White" AutoFitMode="DynamicHeight" VerticalOptions="FillAndExpand" >
<syncfusion:SfListView.DataSource>
<data:DataSource>
<data:DataSource.GroupDescriptors>
<data:GroupDescriptor PropertyName="Catalogo" />
<data:GroupDescriptor PropertyName="QtdTotal" />
<data:GroupDescriptor PropertyName="ValorTotal" />
</data:DataSource.GroupDescriptors>
</data:DataSource>
</syncfusion:SfListView.DataSource>
<syncfusion:SfListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout BackgroundColor="Black">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="15" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
</Grid>
<Label Grid.Row="0" Grid.Column="0" x:Name="label" Text="{Binding Key.Catalogo}" TextColor="White" HeightRequest="30" VerticalOptions="Center" VerticalTextAlignment="Center" Margin="10,0,0,0" />
<Label Grid.Row="0" Grid.Column="0" x:Name="label1" Text="{Binding Key.QtdTotal}" TextColor="White" HeightRequest="30" VerticalOptions="Center" VerticalTextAlignment="Center" Margin="10,0,0,0" />
<Label Grid.Row="0" Grid.Column="0" x:Name="label2" Text="{Binding Key.ItemCarrinhoModel.ValorTotal}" TextColor="White" HeightRequest="30" VerticalOptions="Center" VerticalTextAlignment="Center" Margin="10,0,0,0" />
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</syncfusion:SfListView.GroupHeaderTemplate>
<syncfusion:SfListView.ItemTemplate>
<DataTemplate>
<ViewCell >
<StackLayout BackgroundColor="LightGray">
<Grid Margin="1" RowSpacing="0" BackgroundColor="White">
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="75" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="62" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Grid.Row="0" Grid.Column="0" Grid.RowSpan="2" Source="{Binding Imagem, Converter={StaticResource Base64ParaImagem}}"
WidthRequest="60"
MinimumWidthRequest="60"
HorizontalOptions="Center">
</Image>