.net ListView 中的 MAUI 网格未正确间隔列

问题描述 投票:0回答:1

我正在尝试创建一个项目列表,其中每个项目具有相同数量的包含标签的列。由于每个标签中的文本大小不同,我希望列是可用宽度的百分比,以便它们在不同的列表项之间排列。这就是我遇到问题的地方。即使我将网格列宽度设置为“*”,它们也没有使用可用宽度。我正在寻找与 WPF SharedSizeGroup 相当的解决方案。

tldr:.net MAUI 中的 ListView,列表项之间的列间隔均匀。

<ListView ItemsSource="{Binding TransactionViewmodels}" Grid.Row="1">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Grid ColumnSpacing="24" Margin="24">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    
                    <Label Grid.Column="0"                                   
                           Grid.Row="0"
                           FontSize="Medium"
                           Text="{Binding Date}"/>
                        
                    <Label Grid.Column="0"
                           Grid.Row="1"
                           FontSize="Small"
                           Text="{Binding Time}"/>
                        
                    <Label Grid.Column="1"
                           Grid.Row="0"
                           FontSize="Medium"
                           Text="{Binding StockName}"/>
                        
                    <Label Grid.Column="1"
                           Grid.Row="1"
                           FontSize="Small"
                           Text="{Binding Isin}"/>
                        
                    <Label Grid.Column="2"
                           Grid.Row="0"
                           Grid.RowSpan="2"
                           FontSize="Small"
                           VerticalTextAlignment="Center"
                           Text="{Binding Description}"/>
                        
                    <Label Grid.Column="3"
                           Grid.Row="0"
                           Grid.RowSpan="2"
                           FontSize="Medium"
                           VerticalTextAlignment="Center"
                           Text="{Binding Value}"/>
                </Grid>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

当前结果图像

xaml maui
1个回答
0
投票

假设您的列表位于带有columnDefinition Auto的网格中,我能够重现该错误:

enter image description here

enter image description here

在不修改 xaml 的情况下,我所做的就是将列定义分配给 *,它看起来像这样:

enter image description here

enter image description here

我猜你的问题与 ListView 容器有关,而不是 itemTemplate

© www.soinside.com 2019 - 2024. All rights reserved.