private void Initialize() { var view = new EventedView(View.Frame); view.OnTouchesEnded += (sender, args) => { _tableView.ResignTextFieldAsFirstResponder(); }; View = view; // add navigation item View.BackgroundColor = UIColor.GroupTableViewBackgroundColor; var navigationBar = new UINavigationBar(new RectangleF(0, 0, View.Frame.Width, 44)); //navigationBar.TintColor = UIColor.DarkGray; var navigationItem = new UINavigationItem(Comparison == null ? "New Comparison" : Comparison.Name); var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, (sender, args) => { if (_tableView.ComparisonName == null || _tableView.ComparisonName.Trim() == string.Empty) { new UIAlertView("Warning", "Please provide a comparison name", null, "Dismiss").Show(); return; } if (Comparison == null) { Comparison = new ComparisonModel() { Name = _tableView.ComparisonName.Trim(), UnitId = _unitPicker.SelectedUnit.Id, UnitTypeId = _tableView.UnitTypeId }; Comparison.Id = DataService.SaveComparison(Comparison); } else { Comparison.Name = _tableView.ComparisonName.Trim(); Comparison.UnitId = _unitPicker.SelectedUnit.Id; Comparison.UnitTypeId = _tableView.UnitTypeId; DataService.UpdateComparison(Comparison); } if (OnFinished != null) { OnFinished(this, EventArgs.Empty); } }); var cancelButton = new UIBarButtonItem(UIBarButtonSystemItem.Cancel, (sender, args) => { if (Comparison != null) { navigationItem.Title = Comparison.Name; } if (OnCanceled != null) { OnCanceled(this, EventArgs.Empty); } }); navigationItem.SetRightBarButtonItem(doneButton, false); navigationItem.SetLeftBarButtonItem(cancelButton, false); navigationBar.PushNavigationItem(navigationItem, false); View.AddSubview(navigationBar); _tableView = new ComparisonTableView(new RectangleF(0, 44, View.Frame.Width, View.Frame.Height - 44), UITableViewStyle.Grouped); _tableView.OnUnitTypeChanged += (sender, args) => { _unitPicker.SetUnitType(_tableView.UnitTypeId); _tableView.SetUnitText(_unitPicker.SelectedUnit.FullName); }; _tableView.OnTouchesEnded += (sender, args) => { _tableView.ResignTextFieldAsFirstResponder(); }; _tableView.OnKeyboardDone += (sender, args) => { _tableView.ResignTextFieldAsFirstResponder(); }; if (Comparison != null) { _tableView.OnNameChanged += (sender, args) => { navigationItem.Title = _tableView.ComparisonName; }; } View.AddSubview(_tableView); if (Comparison == null) { _unitPicker = new UnitPicker(1, new RectangleF(0, View.Frame.Height - 216, 320, 216)); } else { _unitPicker = new UnitPicker(Comparison.UnitTypeId, new RectangleF(0, View.Frame.Height - 216, 320, 216)); } _unitPicker.OnSelectionChanged += (sender, args) => { _tableView.SetUnitText(_unitPicker.SelectedUnit.FullName); }; View.AddSubview(_unitPicker); }
public ComparisonTableViewSource(ComparisonTableView tableView) { _tableView = tableView; }