1

我正在尝试在 Listview 的每个项目中实现一个带有 Checkbox 控件的 Listview。如果我想删除两个项目,我将检查这两个项目并单击删除它应该删除。我探索了更多关于这种概念但无法找到Github 中的单个演示示例。

编程语言:Xamarin 表单不在 Xamarin android 或 Xamain IOS 中。我已经知道如何在这些平台中实现。但我没有任何示例代码至少可以更好地理解“Xamarin 表单中的多选和删除操作”

4

4 回答 4

4
  • 使用SwitchCell(此处示例:https ://github.com/xamarin/xamarin-forms-samples/tree/master/UserInterface/ListView/SwitchEntryTwoBinding/twoWayBinding ))

或创建自定义ViewCell布局(https://developer.xamarin.com/guides/cross-platform/xamarin-forms/user-interface/listview/customizing-cell-appearance/ -自定义单元格章节)

  • 绑定SwitchCell.OnPropertyYourCustomViewCell.Checkbox.CheckedProperty使用您的ViewModel.ObservableCollection.IsChecked属性(如 SwitchEntryTwoBinding 示例)

  • 然后你可以创建一个Buttonor ToolbarItemwhich 调用方法来迭代每个项目ViewModel.ObservableCollection并在 if 中删除它IsChecked=true

于 2015-08-21T17:15:37.747 回答
0

我们在这里创建了一个多选 ListView 控件。它适用于所有平台,并且没有特定于平台的代码。 https://github.com/MelbourneDeveloper/Adapt.Presentation/blob/master/Adapt.Presentation.Standard/Adapt/Presentation/Controls/AdaptListView.cs

这里包含一个完整的示例: https ://github.com/MelbourneDeveloper/Adapt.Presentation.git

这对异步行为非常有效。即,您可以按任何顺序设置 ItemsSource 或 SelectedItems。回购中有一个多选示例: https ://github.com/MelbourneDeveloper/Adapt.Presentation.git

还有一种使用按钮切换选择模式的行为,以便您可以跳到选定的记录,或者在列表视图中选择许多记录: https ://github.com/MelbourneDeveloper/Adapt.Presentation/blob/master /Adapt.Presentation.Standard/Adapt/Presentation/Behaviours/AdaptListViewSelectionModeToggleBehavior.cs

此行为是相关的,因为它允许您从列表视图中删除所选项目: https ://github.com/MelbourneDeveloper/Adapt.Presentation/blob/master/Adapt.Presentation.Standard/Adapt/Presentation/Behaviours/RemoveFromCollectionBehavior.cs

不幸的是,这目前不支持 CheckBoxes,但该功能无需 CheckBoxes 即可工作,我们将来可能会添加该功能。

于 2017-09-27T11:53:05.660 回答
0

首先创建一个带有开关(或实现SwitchCell)的自定义单元格。然后将开关的值绑定到数据模型中的布尔值。然后,在按钮单击事件上,一个简单的 Linq 查询就可以解决问题。

确保您的项目列表是ObservableCollection,因此当您删除项目时,更改会正确传播到 ListView。

于 2015-10-05T18:17:42.357 回答
0

如何拥有一个 Xamarin.Forms.ListView 的MVVM方法,其中包含一组可以选择删除的项目。通过按钮命令启动删除。

看法:

  • 持有ListView
  • ListView CellsSwitchCell具有可以绑定到布尔值(最好是 Xamarin.Forms.Switch)的控件的自定义单元格或自定义单元格
  • 持有一个Button "Delete Items"

模型:

  • 实现INotifyPropertyChanged接口(更新视图)
  • 保存任何附加数据
  • 持有一个public bool ShouldBeDeleted{ ... setter 调用 PropertyChanged() ...),这将被绑定到Xamarin.Forms.Switch.IsToggled bindable property

视图模型:

  • BindingContext视图的
  • 持有一个IList/IEnumerable实例Model
  • IList/IEnumerable 将设置为"ItemsSource"-PropertyViews ListView 的
  • 持有一个绑定到Command property“删除项目”按钮的命令。此命令应调用一个方法,该方法循环通过 IList/IEnumerable 并删除所有将 ShouldBeDeleted 设置为 true 的项目。
  • 用于ObservableCollection项目列表。它会在添加、删除模型或清除/刷新列表时更新视图
于 2018-03-29T19:46:59.937 回答