/// <summary> /// Shows or hides the nullable picker /// </summary> /// <param name="dvc"></param> /// <param name="tableView"></param> /// <param name="path"></param> /// <returns></returns> private void TogglePicker(DialogViewController dvc, UITableView tableView, NSIndexPath path) { var sectionAndIndex = GetMySectionAndIndex(dvc); if (sectionAndIndex.Key != null) { Section section = sectionAndIndex.Key; int index = sectionAndIndex.Value; var cell = tableView.CellAt(path); if (_picker_present) { // Remove the picker. cell.DetailTextLabel.TextColor = UIColor.Gray; section.Remove(_inline_date_element); _picker_present = false; if (PickerClosed != null) PickerClosed(); } else { // Show the picker. cell.DetailTextLabel.TextColor = UIColor.Red; _inline_date_element = new InlineDateElement(DateValue); _inline_date_element.DateSelected += (DateTime? date) => { this.DateValue = date; cell.DetailTextLabel.Text = FormatDate(date); Value = cell.DetailTextLabel.Text; if (DateSelected != null) // Fire our changed event. DateSelected(); }; _inline_date_element.ClearPressed += () => { DateTime? null_date = null; DateValue = null_date; cell.DetailTextLabel.Text = " "; Value = cell.DetailTextLabel.Text; cell.DetailTextLabel.TextColor = UIColor.Gray; section.Remove(_inline_date_element); _picker_present = false; if (PickerClosed != null) PickerClosed(); }; section.Insert(index + 1, UITableViewRowAnimation.Bottom, _inline_date_element); _picker_present = true; tableView.ScrollToRow(_inline_date_element.IndexPath, UITableViewScrollPosition.None, true); if (PickerOpened != null) PickerOpened(); } } }
/// <summary> /// Shows or hides the nullable picker /// </summary> /// <param name="dvc"></param> /// <param name="tableView"></param> /// <param name="path"></param> /// <returns></returns> private void TogglePicker(DialogViewController dvc, UITableView tableView, NSIndexPath path) { var sectionAndIndex = GetMySectionAndIndex(dvc); if (sectionAndIndex.Key != null) { Section section = sectionAndIndex.Key; int index = sectionAndIndex.Value; var cell = tableView.CellAt(path); if (_picker_present) { // Remove the picker. cell.DetailTextLabel.TextColor = UIColor.Gray; section.Remove(_inline_date_element); _picker_present = false; if (PickerClosed != null) PickerClosed(); } else { // Show the picker. cell.DetailTextLabel.TextColor = UIColor.Red; _inline_date_element = new InlineDateElement(DateValue); _inline_date_element.DateSelected += (DateTime? date) => { this.DateValue = date; cell.DetailTextLabel.Text = FormatDate(date); Value = cell.DetailTextLabel.Text; cell.BackgroundColor = UIColor.FromRGB(1f, 1f, 0.8f); if (DateSelected != null) // Fire our changed event. DateSelected(); }; _inline_date_element.ClearPressed += () => { DateTime? null_date = null; DateValue = null_date; cell.DetailTextLabel.Text = " "; Value = cell.DetailTextLabel.Text; cell.DetailTextLabel.TextColor = UIColor.Gray; section.Remove(_inline_date_element); _picker_present = false; if (PickerClosed != null) PickerClosed(); cell.BackgroundColor = _defaultColor ?? UIColor.White; }; section.Insert(index + 1, UITableViewRowAnimation.Bottom, _inline_date_element); _picker_present = true; tableView.ScrollToRow(_inline_date_element.IndexPath, UITableViewScrollPosition.None, true); if (PickerOpened != null) PickerOpened(); } } }