/// <summary>
        /// Gets the cell.
        /// </summary>
        /// <returns>The cell.</returns>
        /// <param name="tableView">Table view.</param>
        /// <param name="indexPath">Index path.</param>
        public override UITableViewCell GetCell(UITableView tableView, Foundation.NSIndexPath indexPath)
        {
            var reusableCell = tableView.DequeueReusableCell("pikcercell");

            if (reusableCell == null)
            {
                reusableCell = new UITableViewCell(UITableViewCellStyle.Subtitle, "pickercell");

                reusableCell.TextLabel.TextColor       = _titleColor;
                reusableCell.TextLabel.Font            = reusableCell.TextLabel.Font.WithSize(_fontSize);
                reusableCell.DetailTextLabel.TextColor = _detailColor;
                reusableCell.DetailTextLabel.Font      = reusableCell.DetailTextLabel.Font.WithSize(_detailFontSize);
                reusableCell.BackgroundColor           = _background;
                reusableCell.TintColor = _accentColor;
            }

            var text = _pickerCell.DisplayValue(_source[indexPath.Row]);

            reusableCell.TextLabel.Text = $"{text}";
            var detail = _pickerCell.SubDisplayValue(_source[indexPath.Row]);

            reusableCell.DetailTextLabel.Text = $"{detail}";

            reusableCell.Accessory = _selectedCache.ContainsKey(indexPath.Row) ?
                                     UITableViewCellAccessory.Checkmark : UITableViewCellAccessory.None;


            return(reusableCell);
        }
        /// <summary>
        /// Gets the view.
        /// </summary>
        /// <returns>The view.</returns>
        /// <param name="position">Position.</param>
        /// <param name="convertView">Convert view.</param>
        /// <param name="parent">Parent.</param>
        public override AView GetView(int position, AView convertView, ViewGroup parent)
        {
            if (convertView == null)
            {
                convertView = new PickerInnerView(_context, this);
            }

            (convertView as PickerInnerView).UpdateCell(_pickerCell.DisplayValue(_source[position]), _pickerCell.SubDisplayValue(_source[position]));

            return(convertView);
        }