public void Bind(Image contentItem, UIImageTableView parent) { _parent = parent; lblDate.Text = contentItem.DateTime.ToLocalTime().ToFriendlyDate (); lblAuthor.Text = contentItem.AuthorName; btnDelete.SetImage (UIImage.FromFile ("images/icons/delete.png"), UIControlState.Normal); btnDelete.TouchUpInside += (object sender, EventArgs e) => { _parent.RemoveRow(_contentItem); }; btnPromote.SetImage (UIImage.FromFile ("images/icons/promote.png"), UIControlState.Normal); btnPromote.TouchUpInside += (object sender, EventArgs e) => { _parent.PromoteRow(_contentItem); }; _contentItem = contentItem; }
void Layout() { if (_tableView == null) { _tableView = new UIImageTableView (); var t = this.Frame; _tableView.Frame = new RectangleF (0, 0, UIScreen.MainScreen.ApplicationFrame.Width, UIScreen.MainScreen.ApplicationFrame.Height - 44); // 44 is height of nav bar // _tableView.ScrollEnabled = false; _tableView.SeparatorStyle = UITableViewCellSeparatorStyle.None; _tableView.BackgroundColor = UIColor.FromRGB (242, 242, 242); //UIColor.FromPatternImage (UIImage.FromFile("images/login/loginBg.png")); // add a swipe handler for options var s = new UISwipeGestureRecognizer (SwipeHandler); s.Direction = UISwipeGestureRecognizerDirection.Left; _tableView.AddGestureRecognizer (s); s = new UISwipeGestureRecognizer (SwipeHandler); s.Direction = UISwipeGestureRecognizerDirection.Right; _tableView.AddGestureRecognizer (s); // wure up the remove row _tableView.RemoveRow = (image) => { var alert = MBAlertView.AlertWithBody ("Are you sure you want to delete this image? You cannot undo this.", "No", null); alert.AddButtonWithText ("Yes", MBAlertViewItemType.Destructive, () => { // call server to delete the tweet Helper.Default.ShowHud("deleting ..."); Api.Default.DeleteImageItem (image, (result) => { this.InvokeOnMainThread(()=>{ if (result.Result == "ok") { var index = this.ViewSource.RemoveItem (image); this._tableView.DeleteRows (new MonoTouch.Foundation.NSIndexPath[]{MonoTouch.Foundation.NSIndexPath.Create (0,index)}, UITableViewRowAnimation.Fade); Helper.Default.HideHud(); } else{ Helper.Default.HideHud("Could not delete, try again."); } }); }); }); alert.AddToDisplayQueue (); }; _tableView.PromoteRow = (tweet) => { var alert = MBAlertView.AlertWithBody ("Are you sure you want to promote this image? You cannot undo this.", "No", null); alert.AddButtonWithText ("Yes", MBAlertViewItemType.Positive, () => { // call server to delete the tweet Helper.Default.ShowHud("promoting ..."); Api.Default.PromoteImageItem (tweet, (result) => { this.InvokeOnMainThread(()=>{ if (result.Result == "ok") { Helper.Default.HideHud(); _lastcell.Animate2 (0.2, ()=>AnimateCellRight(_lastcell), ()=>{ _lastcell = null; }); } else{ Helper.Default.HideHud("Could not promote, try again."); } }); }); }); alert.AddToDisplayQueue (); }; // add to view this.AddSubview (_tableView); } }