You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin ListView仅显示单个绑定字段,如何实现多列数据展示?

问题解决:Xamarin ListView三列布局字段显示异常修复

问题根源

你的代码存在两个核心问题,导致仅Peso字段正常显示:

  1. 三个Label嵌套在垂直方向(Vertical)的StackLayout中,会自动垂直堆叠,无法实现横向三列排列。
  2. Label上的Grid.Column属性无效——它们的直接父容器是StackLayout而非Grid,Grid的布局属性对StackLayout的子元素不生效。

修正后的代码

移除StackLayout,直接将三个Label放在Grid的对应列中,调整布局结构如下:

<ListView x:Name="PaqueteList">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <Frame BorderColor="Black">
                    <Grid Margin="5">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="1*"/>
                            <ColumnDefinition Width="1*"/>
                            <ColumnDefinition Width="1*"/>
                        </Grid.ColumnDefinitions>
                        
                        <Label Text="{Binding Peso}" 
                               TextColor="Blue"
                               BackgroundColor="White"
                               HorizontalOptions="Center"
                               VerticalOptions="Center"/>
                        
                        <Label Grid.Column="1" 
                               Text="{Binding TrackingNumber}" 
                               TextColor="Blue"
                               BackgroundColor="White"
                               HorizontalOptions="Center"
                               VerticalOptions="Center"/>
                        
                        <Label Grid.Column="2" 
                               Text="{Binding Contenido}"
                               TextColor="Blue"       
                               BackgroundColor="White"
                               HorizontalOptions="Center"
                               VerticalOptions="Center"/>
                    </Grid>
                </Frame>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

关键调整说明

  • 移除原StackLayout,让Grid作为Frame的直接子元素,使Grid.Column属性能直接作用于Label,实现横向三列布局。
  • 为每个Label添加HorizontalOptions="Center",让文字在列内居中对齐,匹配你期望的展示效果。
  • 将原Grid上的Margin移至内部Grid,避免Frame与内容之间的间距混乱。

额外检查点

若修改后仍有字段不显示,请确认:

  • 数据源对象中TrackingNumber和Contenido是公共属性(public),若需动态更新需实现INotifyPropertyChanged接口。
  • 已将数据源正确赋值给PaqueteList.ItemsSource。

内容的提问来源于stack exchange,提问作者user16394300

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:01:05