使用Xamarin表单创建Multiselect Listview(Xamarin跨平台)
我正在尝试在Listview的每个项目中实现一个带有复选框控件的Listview。如果我想删除两个项目,我将选中这两个项目,然后单击“删除它应该删除”。我对这种概念进行了更多探索,但在Github中也找不到单个演示示例 编程语言:Xamarin表单不在Xamarin android或Xamain IOS中。我已经知道如何在这些平台上实现。但我没有任何示例代码,至少可以更好地理解“Xamarin表单中的多选择和删除操作”使用Xamarin表单创建Multiselect Listview(Xamarin跨平台),listview,xamarin,multi-select,xamarin-forms,Listview,Xamarin,Multi Select,Xamarin Forms,我正在尝试在Listview的每个项目中实现一个带有复选框控件的Listview。如果我想删除两个项目,我将选中这两个项目,然后单击“删除它应该删除”。我对这种概念进行了更多探索,但在Github中也找不到单个演示示例 编程语言:Xamarin表单不在Xamarin android或Xamain IOS中。我已经知道如何在这些平台上实现。但我没有任何示例代码,至少可以更好地理解“Xamarin表单中的多选择和删除操作” 使用SwitchCell(此处示例:)) 或创建自定义ViewCell布局
- 使用
(此处示例:))SwitchCell
ViewCell
布局(自定义单元格章节)
- 将
或SwitchCell.OnProperty
与YourCustomViewCell.Checkbox.CheckedProperty
属性绑定(如SwitchEntryTwoBinding示例)ViewModel.ObservableCollection.IsChecked
- 然后,您可以创建一个
或按钮
,该按钮调用迭代工具栏项
,并在视图模型中每个项的方法。ObservableCollection
IsChecked=true时将其删除
- 使用
(此处示例:))SwitchCell
ViewCell
布局(自定义单元格章节)
- 将
或SwitchCell.OnProperty
与YourCustomViewCell.Checkbox.CheckedProperty
属性绑定(如SwitchEntryTwoBinding示例)ViewModel.ObservableCollection.IsChecked
- 然后,您可以创建一个
或按钮
,该按钮调用迭代工具栏项
,并在视图模型中每个项的方法。ObservableCollection
IsChecked=true时将其删除
SwitchCell
)。然后将开关的值绑定到数据模型中的bool。然后,在button clicked事件上,一个简单的Linq查询就可以实现这一点
确保您的项目列表是一个可观察的集合,这样当您删除项目时,更改会正确传播到列表视图。首先创建一个带有开关的自定义单元格(或实现
开关单元格
)。然后将开关的值绑定到数据模型中的bool。然后,在button clicked事件上,一个简单的Linq查询就可以实现这一点
确保您的项目列表是一个可观察的集合,这样当您删除项目时,更改会正确传播到ListView。我们在这里创建了一个多选ListView控件。它可以在所有平台上工作,并且没有特定于平台的代码。 这里有一个完整的示例: 这对于异步行为非常有效。也就是说,您可以按任何顺序设置ItemsSource或SelectedItems。回购协议中有一个多选样本: 还有一种使用按钮切换选择模式的行为,以便您可以跳转到所选记录,或在listview中选择多个记录: 此行为是相关的,因为它允许您从listview中删除选定的项目:
不幸的是,这目前不支持复选框,但该功能不需要复选框就可以工作,我们将来可能会添加该功能。我们在这里创建了一个多选ListView控件。它可以在所有平台上工作,并且没有特定于平台的代码。 这里有一个完整的示例: 这对于异步行为非常有效。也就是说,您可以按任何顺序设置ItemsSource或SelectedItems。回购协议中有一个多选样本: 还有一种使用按钮切换选择模式的行为,以便您可以跳转到所选记录,或在listview中选择多个记录: 此行为是相关的,因为它允许您从listview中删除选定的项目:
不幸的是,这目前不支持复选框,但该功能不需要复选框就可以工作,我们将来可能会添加该功能。MVVM介绍如何拥有一个Xamarin.Forms.ListView来保存一组可选择删除的项目。通过按钮命令启动删除 查看:
- 保留
列表视图
可以是ListView单元格
或带有可绑定到布尔值的控件的自定义单元格(最好是Xamarin.Forms.Switch)SwitchCell
- 保留一个
按钮“删除项目”
- 实现
接口(更新视图)INotifyPropertyChanged
- 保存任何附加数据
- 保存一个
{…setter调用PropertyChanged()…),它将绑定到公共bool ShouldBeDeleted
Xamarin.Forms.Switch.IsToggled可绑定属性
- 是视图的
BindingContext
- 保存
模型的
实例的
IList/IEnumerable
- IList/IEnumerable将设置为视图ListView的
“ItemsSource”-属性
- 保存绑定到“删除项”按钮的
的命令。此命令应调用一个方法,该方法在IList/IEnumerable中循环并删除任何应作为true删除的项命令属性
- 对ItemList使用
。它在添加、删除模型或清除/刷新列表时更新视图ObservableCollection
- 保留
列表视图
是ListView单元格
或custSwitchCell