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

MAUI中按钮点击向Picker添加项失效问题求助

MAUI Picker动态添加选项不显示的原因及解决办法

问题原因

直接调用pickAnimal.Items.Add()添加选项时,Picker.Items是普通的List<string>,它没有实现INotifyCollectionChanged接口,无法在集合变化时通知UI更新。而在构造函数中设置时,控件正处于初始化渲染阶段,此时的集合修改会被UI渲染流程捕获,所以能正常显示。

解决方法

  • 在页面类中声明一个可观察集合:
    public ObservableCollection<string> AnimalItems { get; set; } = new ObservableCollection<string>();
    
  • 在XAML中给Picker绑定ItemsSource:
    <Picker x:Name="pickAnimal" ItemsSource="{Binding AnimalItems}" />
    
  • 在页面构造函数中设置绑定上下文(如果没设置的话):
    public MainPage()
    {
        InitializeComponent();
        BindingContext = this;
    }
    
  • 修改按钮点击事件代码,操作可观察集合:
    private void OnCounterClicked(object sender, EventArgs e)
    {
        AnimalItems.Add("Monkey");
        AnimalItems.Add("Horse");
        pickAnimal.SelectedIndex = 0;
    }
    

改用ObservableCollection<string>后,集合的任何变化都会自动通知UI刷新,点击按钮后Picker就能正常显示新增的选项了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 04:12:04