public void CheckBoxTapped(CheckBox sender) { NSIndexPath indexPath = IndexPathForView (sender); if (indexPath.Row >= 1 && indexPath.Row <= List.Count) { ListItem item = List[indexPath.Row - 1]; ListOperationInfo info = List.ToggleItem (item, -1); if (info.FromIndex == info.ToIndex) { TableView.ReloadRows(new NSIndexPath[] { indexPath }, UITableViewRowAnimation.Automatic); } else { // Animate the row up or down depending on whether it was complete/incomplete. NSIndexPath target = NSIndexPath.FromRowSection (info.ToIndex + 1, 0); TableView.BeginUpdates (); TableView.MoveRow (indexPath, target); TableView.EndUpdates (); TableView.ReloadRows (new NSIndexPath[] { target }, UITableViewRowAnimation.Automatic); } TriggerNewDataForWidget (); // notify the document that we've made a change document.UpdateChangeCount (UIDocumentChangeKind.Done); } }
public void CheckBoxTapped(CheckBox sender) { NSIndexPath indexPath = IndexPathForView (sender); ListItem item = List[indexPath.Row]; ListOperationInfo info = List.ToggleItem (item, -1); if (info.FromIndex == info.ToIndex) { TableView.ReloadRows (new NSIndexPath[]{ indexPath }, UITableViewRowAnimation.Automatic); } else { int itemCount = List.Count; if (!ShowingAll && itemCount != TodayBaseRowCount && info.ToIndex > TodayBaseRowCount - 1) { // Completing has moved an item off the bottom of the short list. // Delete the completed row and insert a new row above "Show All...". NSIndexPath targetIndexPath = NSIndexPath.FromRowSection (TodayBaseRowCount - 1, 0); TableView.BeginUpdates (); TableView.DeleteRows (new NSIndexPath[] { indexPath }, UITableViewRowAnimation.Automatic); TableView.InsertRows (new NSIndexPath[]{ targetIndexPath }, UITableViewRowAnimation.Automatic); TableView.EndUpdates (); } else { // Need to animate the row up or down depending on its completion state. NSIndexPath targetIndexPath = NSIndexPath.FromRowSection (info.ToIndex, 0); TableView.BeginUpdates (); TableView.MoveRow (indexPath, targetIndexPath); TableView.EndUpdates (); TableView.ReloadRows (new NSIndexPath[] { targetIndexPath }, UITableViewRowAnimation.Automatic); } } // Notify the document of a change. document.UpdateChangeCount (UIDocumentChangeKind.Done); }