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

Xamarin中ListView绑定单条数据时ViewCell重复显示如何解决?

问题根因

  • Xamarin.Forms 的 ListView.ItemsSource 仅支持绑定实现 IEnumerable 接口的集合类型,你传入的 cartUserInfo 是字符串类型,而字符串本身是单个字符的可枚举集合,因此 ListView 会把字符串的每一个字符作为独立条目渲染,最终出现多个重复 ViewCell,和你存储的业务数据条数无关,属于绑定类型不匹配导致的问题。
  • 你当前 XAML 中 Label 的 Text 写死为固定值 11,所以所有条目展示内容完全相同,进一步强化了“重复”的视觉效果。

修复方案

根据你的使用场景二选一即可:

场景1:仅需展示单条数据,不需要列表能力

直接移除 ListView 改用普通 Label 承载内容即可:
XAML 代码调整:

<ContentPage.Content>
 <StackLayout>
     <Label x:Name="cartInfoLabel" TextColor="#848484" />
 </StackLayout>
</ContentPage.Content>

后台代码调整:

public Test()
{
    InitializeComponent();
    var cartUserInfo = Preferences.Get("CartUser", "defaultcart");
    cartInfoLabel.Text = cartUserInfo;
}

场景2:后续需要扩展为多条数据,保留 ListView 组件

把单条字符串包装为单元素集合后再赋值给 ItemsSource,同时修改 Label 绑定逻辑展示实际内容:
XAML 中 Label 部分调整:

<Label TextColor="#848484" Text="{Binding .}" />

后台代码调整:

public Test()
{
    InitializeComponent();
    var cartUserInfo = Preferences.Get("CartUser", "defaultcart");
    // 将单条数据包装为集合类型符合 ListView 绑定要求
    myCarts.ItemsSource = new List<string> { cartUserInfo };
}

内容的提问来源于stack exchange,提问作者Chim Di Tru

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:06:00