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

Xamarin.Forms XAML中ListView新增项无法自动选中问题咨询

问题根因

无法自动选中新增条目的核心原因有2个:

  • selecteditem属性的get访问器编写错误:当前代码中selecteditem的getter返回的是_number字段,而非属性对应的_selecteditem字段。你在Add点击逻辑中给selecteditem赋值后,UI读取该属性时拿到的始终是_number的值,无法获取你设置的选中目标,自然不会触发ListView的选中状态更新。
  • 绑定模式未显式声明:Xamarin.Forms不同平台下ListView.SelectedItem的默认绑定方向存在差异,部分场景下单向绑定会导致ViewModel侧的属性变更无法同步到UI。
修复方案

1. 修正ViewModel中的属性代码

将selecteditem属性的get访问器修正为返回对应支撑字段,修正后的代码段如下:

private string _selecteditem { get; set; }
public string selecteditem
{
    // 原错误写法:get => _number;
    get => _selecteditem;
    set
    {
        _selecteditem = value;
        OnPropertyChanged();
    }
}

2. 显式配置XAML绑定模式

修改ListView的SelectedItem绑定,显式指定为双向绑定,规避平台默认配置差异问题:

<ListView ItemsSource="{Binding numbers}" SelectedItem="{Binding selecteditem, Mode=TwoWay}">
</ListView>
效果验证

修复后点击Add按钮的执行逻辑可正常跑通:

  1. number值累加后触发属性通知,顶部Label正常展示更新后的数值
  2. 新值加入numbers集合时,ObservableCollection自动通知ListView渲染新增条目
  3. selecteditem赋值后可被UI正确读取,属性变更通知触发ListView更新选中状态,自动定位到刚新增的条目

注:由于你使用的是string类型作为集合项,字符串按值相等比较,不需要额外从集合中取对应实例引用,现有赋值逻辑可直接生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:24:31