.NET MAUI组合框选择
. net MAUI的ComboBox使应用程序用户能够快速方便地从下拉列表中选择项目。本主题将介绍由ComboBox API提供的与项/项选择相关的功能。
ComboBox控件支持单个和多个选择。控件可以方便地指定所需的选择SelectionMode
财产。
主要特性
SelectionMode
类型的枚举Telerik.Maui.Controls.ComboBoxSelectionMode
):定义选择是单个还是多个。SelectedIndex
(int
):指定当前选定项中第一项的索引,如果选定项为空,则为-1。设置SelectedItem
(对象
):定义当前选定项中的第一项,如果选定项为空,则为空。设置selecteditem
(readonly ObservableCollection <object >
):获取当前选定项的集合。
设置selecteditem
只能在以下情况下更改收集SelectionMode
是多个
.为单
SelectionMode
使用设置SelectedItem
.
单一的选择
默认的SelectinMode
类型的枚举Telerik.Maui.Controls.ComboBoxSelectionMode
)的组合框控件为单
.
以Single Selection和SelectedIndex为例
下面是XAML中的ComboBox定义:
< / telerik: RadComboBox >
需要添加的命名空间如下:
xmlns: telerik = "http://schemas.telerik.com/2022/xaml/maui"
公共类城市{公共字符串名称{get;设置;}公共int人口{得到;设置;}}
和使用的ViewModel:
公共类ViewModel{公共ViewModel(){这。项= new ObservableCollection <城市>{新城市{Name =“东京”,人口= 13929286},新的城市{Name =“纽约”,人口= 8623000},新的城市{Name =“伦敦”,人口= 8908081},新的城市{Name =“马德里”,人口= 3223334},新的城市{Name =“洛杉矶”,人口= 4000000},新的城市{Name = "巴黎"人口= 2141000},新城市人口= {Name = "北京",21540000},新的城市{Name =“新加坡”,人口= 5612000},新的城市{Name =“新德里”,人口= 18980000},新城市{Name = "曼谷",人口= 8305218},新城市{Name = "柏林",人口= 3748000},};}公共ObservableCollection Items {get;设置;}}
这是单一选择的样子:
单个选择和SelectedItem集合的示例
下面是XAML中的ComboBox定义:
< / telerik: RadComboBox >
示例业务模型
公共类城市{公共字符串名称{get;设置;}公共int人口{得到;设置;}}
和使用的ViewModel:
公共类ViewModel: NotifyPropertyChangedBase{私有int selecteindex;private City selectedItem;private ObservableCollection
多个选择
如果要实现多重选择,则需要设置SelectionMode
来多个
.多个选中的项目在令牌中可视化。
由于SelectedItems集合是只读的,为了在集合更改时收到通知,您应该收听
CollectionChanged
事件的发生设置selecteditem
.
设置了“多重选择”和“选定项”的示例
下面是XAML中的ComboBox定义:
< / telerik: RadComboBox >
示例业务模型
公共类城市{公共字符串名称{get;设置;}公共int人口{得到;设置;}}
和使用的ViewModel:
公共类ViewModel: NotifyPropertyChangedBase{私有int selecteindex;private City selectedItem;private ObservableCollection selectedItems;公共ViewModel(){这个。项= new ObservableCollection <城市>{新城市{Name =“东京”,人口= 13929286},新的城市{Name =“纽约”,人口= 8623000},新的城市{Name =“伦敦”,人口= 8908081},新的城市{Name =“马德里”,人口= 3223334},新的城市{Name =“洛杉矶”,人口= 4000000},新的城市{Name = "巴黎"人口= 2141000},新城市人口= {Name = "北京",21540000},新的城市{Name =“新加坡”,人口= 5612000},新的城市{Name =“新德里”,人口= 18980000},新城市{Name = "曼谷",人口= 8305218},新城市{Name = "柏林",人口= 3748000},};这一点。selecteindex = 1;这一点。SelectedItem = this.Items[2]; } public ObservableCollection Items { get; set; } public ObservableCollection SelectedItems { get { return this.selectedItems; } set { if (this.selectedItems != value) { this.selectedItems = value; this.selectedItems.Add(this.Items[0]); this.selectedItems.Add(this.Items[1]); this.OnPropertyChanged(); } } } public int SelectedIndex { get { return this.selectedIndex; } set { if (this.selectedIndex != value) { this.selectedIndex = value; OnPropertyChanged(); } } } public City SelectedItem { get { return this.selectedItem; } set { if (this.selectedItem != value) { this.selectedItem = value; OnPropertyChanged(); } } } }
这就是多重选择的样子:
可以在我们的SDK浏览器应用.你可以在例子本地文件夹.NET MAUI的Telerik UI安装或在以下GitHub回购.
事件
ComboBox公开了一个SelectionChanged
事件,该事件在选择项时引发。
的SelectionChanged
事件处理程序接收两个参数:
- 的
发送方
也就是RadComboBox控件。 - ComboBoxSelectionChangedEventArgs提供了以下属性:
AddedItems
:添加到SelectedItemsCollection中的项RemovedItems
:从SelectedItmesCollection中删除的项
命令
ComboBox有两个与选择功能相关的命令:
SelectAllCommand
(ICommand
):从源中选择所有项。ClearSelectionCommand
(ICommand
):将选择设置为空。如果使用multiselectionmode,该命令将清除所有选中的项。