Note that there are some explanatory texts on larger screens.

plurals
  1. POInsert on CommitEditingStyle Monotouch
    primarykey
    data
    text
    <p>Basically what I would like is if the edit button is clicked, a "Create" cell is appended to my list which would navigate to a separate screen controller to add. I currently have the delete working as well as the insert (where it just inserts a blank cell into your table). Can anyone help with this? Thanks. THe following is my code...</p> <pre><code>private class UserAlertsTableViewSource : UITableViewSource { const string DEFAULT_CELL = "UserAlertsCell"; private UserAlertsListController _useralertslistController; public UserAlertsTableViewSource( UserAlertsListController useralertslistController) { this._useralertslistController = useralertslistController; } public override int RowsInSection(UITableView tableView, int section) { return _useralertslistController.Alerts.Count; } public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) { int row = indexPath.Row; var cell = tableView.DequeueReusableCell(DEFAULT_CELL) as UserAlertsCell; if (null == cell) { cell = new UserAlertsCell(); var views = NSBundle.MainBundle.LoadNib("UserAlertsCell", cell, null); cell = Runtime.GetNSObject(views.ValueAt(0)) as UserAlertsCell; } cell.Name = _useralertslistController.Alerts[indexPath.Row].LakeName; cell.AlertLevel = _useralertslistController.Alerts[indexPath.Row].AlertLevel; cell.AlertVariance = _useralertslistController.Alerts[indexPath.Row].AlertVariance; return cell; } public override void RowSelected(UITableView tableView, NSIndexPath indexPath) { SelectItem (tableView, indexPath); } public override void AccessoryButtonTapped(UITableView tableView, NSIndexPath indexPath) { SelectItem(tableView, indexPath); } public override float GetHeightForRow(UITableView tableView, NSIndexPath indexPath) { return 60f; } public void SelectItem(UITableView tableView, NSIndexPath indexPath) { // MapController mapController = new MapController(); // _lakelevelsController.NavigationController.PushViewController(mapController, true); } // public override bool CanEditRow (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath) // { // return true; // } public override UITableViewCellEditingStyle EditingStyleForRow (UITableView tableView, NSIndexPath indexPath) { var count = this._useralertslistController.Alerts.Count; if (indexPath.Row == count-1 ) { return UITableViewCellEditingStyle.Insert; }else { return UITableViewCellEditingStyle.Delete; } } public override void CommitEditingStyle (UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath) { switch (editingStyle) { case UITableViewCellEditingStyle.Delete: this._useralertslistController.Alerts.RemoveAt (indexPath.Row); tableView.DeleteRows (new NSIndexPath[] { indexPath } , UITableViewRowAnimation.Fade); break; case UITableViewCellEditingStyle.Insert: this._useralertslistController.Alerts.Insert ( indexPath.Row, new AlertSettings ()); tableView.InsertRows (new NSIndexPath[] { indexPath }, UITableViewRowAnimation.Fade); break; case UITableViewCellEditingStyle.None: Console.WriteLine ("CommitEditingStyle: None called"); break; } } public override void MoveRow (UITableView tableView, NSIndexPath sourceIndexPath, NSIndexPath destinationIndexPath) { var item = this._useralertslistController.Alerts[sourceIndexPath.Row]; int deleteAt = sourceIndexPath.Row; if (destinationIndexPath.Row &lt; sourceIndexPath.Row) { deleteAt = sourceIndexPath.Row + 1; } this._useralertslistController.Alerts.Insert (destinationIndexPath.Row, item); this._useralertslistController.Alerts.RemoveAt (deleteAt); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload