UITableView Multiselect dans MonoTouch

Je UITableView à comprendre comment implémenter le style multitouch suivant UITableView avec Monotouch: entrez la description de l'image ici

J'ai le UITableView fonctionnant avec la fonctionnalité "glisser pour supprimer". J'ai également ajouté ce qui suit:

 logsTable.AllowsMultipleSelection = true; logsTable.AllowsMultipleSelectionDuringEditing = true; 

Ce qui me permet de sélectionner les lignes, mais les cercles et les coches n'apparaissent pas. Est-ce une fonctionnalité iOS par défaut ou dois-je l'implémenter séparément?

il suffit d'append:

logsTable.SetEditing (true, true);

ou pour cacher

logsTable.SetEditing (false, true);

Vous devez créer une class qui hérite de UITableViewSource . Vous devez implémenter au less deux methods dans ce nouvellement créé: GetCell et RowsInSection . Vous pouvez utiliser un UITableViewCell personnalisé pour créer le dessin exact de la cellule ou vous pouvez utiliser la propriété Accessory pour modifier un accessoire de cellule lorsque la cellule a été sélectionnée. Vous devriez avoir quelque chose de similaire à ceci:

 private class SimpleTableViewSource : UITableViewSource { // Some data. Item1 will serve as the Text and Item2 will be a value indicating whether the cell is selected or not private List<Tuple<ssortingng, bool>> Data { get; set; } public SimpleTableViewSource() { this.Data = new List<Tuple<ssortingng, bool>>() { Tuple.Create("Item 1", false), Tuple.Create("Item 2", false), Tuple.Create("Item 3", false), Tuple.Create("Item 4", false), Tuple.Create("Item 5", false), Tuple.Create("Item 6", false), Tuple.Create("Item 7", false) }; } public override int RowsInSection(UITableView tableview, int section) { return this.Data.Count; } public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) { UITableViewCell cell = tableView.DequeueReusableCell("cell") ?? new UITableViewCell(); cell.TextLabel.Text = this.Data[indexPath.Row].Item1; // if the row is selected show checkmark if (this.Data[indexPath.Row].Item2) { cell.Accessory = UITableViewCellAccessory.Checkmark; } else { cell.Accessory = UITableViewCellAccessory.None; } return cell; } public override void RowSelected(UITableView tableView, NSIndexPath indexPath) { UITableViewCell cell = tableView.DequeueReusableCell("cell") ?? new UITableViewCell(); cell.Selected = !this.Data[indexPath.Row].Item2; this.Data[indexPath.Row] = Tuple.Create(this.Data[indexPath.Row].Item1, !this.Data[indexPath.Row].Item2); tableView.ReloadData(); } } 

Et pour configurer votre instance de UITableView (par exemple dans ViewDidLoad ):

 this.tableView.Source = new SimpleTableViewSource(); this.tableView.ReloadData();