MAUI 中没有叫“下拉选择框”的原生控件,但 Picker 就是你要的——它在不同平台呈现为下拉列表(Android/iOS)或弹出选择器(Windows),语义和功能完全对应。
Picker 基础用法:绑定数据 + 响应选中
Picker 是最轻量、最常用的单选选择控件。只需设置 ItemsSource(数据源)和 SelectedItem(当前选中项),再监听 SelectedItemChanged 事件即可。
在 XAML 中声明:自定义显示文本与值(Value/DisplayText 分离)
实际开发中常需显示名称(如“北京市”),但提交 ID(如 "110000")。Picker 本身不直接支持 ValueMember/DisplayMember,但可通过对象绑定实现:
定义一个简单类:public class City { public string Name { get; set; } = ""; public string Code { get; set; } = ""; } ItemsSource 绑定 ObservableCollectionPlatform-specific 行为微调(可选)
Picker 在各平台默认行为合理,但若需定制,可用平台特定代码:
iOS:默认弹出 UIPickerView;如需禁用滚动动画,可在 MauiProgram.cs 注册自定义渲染器(较重,一般不需) Android:点击即展开下拉;若想设默认提示文字(如“请选择城市”),用 Title="请选择城市" 属性(仅 Android & iOS 显示标题) Windows:显示为 ComboBox 风格下拉;若需键盘导航支持,确保 Focusable="True"(默认已开启)替代方案:ComboBox(Windows 专用)与 Popup(跨平台灵活方案)
Picker 是跨平台首选,但有局限:不支持搜索、不能输入、样式不可控。进阶场景可考虑:
Microsoft.Maui.Controls.Compatibility.Controls.ComboBox:仅 Windows 可用,带搜索和输入建议 CommunityToolkit.Maui.Views.Popup + ListView/CollectionView:完全自定义弹出层,支持搜索、分组、图标等,适合复杂业务 注意:不要用 Shell 或 NavigationPage 模拟下拉——体验差、不符合平台规范基本上就这些。Picker 看似简单,但把数据绑定、平台适配、扩展边界理清楚,就能稳稳覆盖 90% 的下拉选择需求。
