| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | using System;using Xamarin.Forms;using Xamarin.Forms.Platform.iOS;using System.Collections.Generic;using UIKit;using System.Linq;using Foundation;using System.Windows.Input;namespace InABox.Mobile{    public class DropDownMenuSource : UITableViewSource    {        // Global variable for the secondary toolbar items and text to display in table row        List<ToolbarItem> _tableItems;        string[] _tableItemTexts;        ICommand[] _tableItemActions;        string CellIdentifier = "TableCell";        public DropDownMenuSource(List<ToolbarItem> items)        {            //Set the secondary toolbar items to global variables and get all text values from the toolbar items            _tableItems = items;            _tableItemTexts = items.Select(a => a.Text).ToArray();            _tableItemActions = items.Select(a => a.Command).ToArray();        }        public override nint RowsInSection(UITableView tableview, nint section)        {            return _tableItemTexts.Length;        }        public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)        {            UITableViewCell cell = tableView.DequeueReusableCell(CellIdentifier);            string item = _tableItemTexts[indexPath.Row];            if (cell == null)            {                 cell = new UITableViewCell(UITableViewCellStyle.Default, CellIdentifier);             }            cell.TextLabel.Text = item;            return cell;        }        public override nfloat GetHeightForRow(UITableView tableView, NSIndexPath indexPath)        {            return 56; // Set default row height.        }        public override void RowSelected(UITableView tableView, NSIndexPath indexPath)        {            //Used command to excute and deselct the row and removed the table.            var command = _tableItems[indexPath.Row].Command;            command.Execute(_tableItems[indexPath.Row].CommandParameter);            tableView.DeselectRow(indexPath, true);            tableView.RemoveFromSuperview();        }    }}
 |