Ejemplo n.º 1
0
        protected override void OnElementChanged(ElementChangedEventArgs <Picker> e)
        {
            if (e.OldElement != null)
            {
                ((INotifyCollectionChanged)e.OldElement.Items).CollectionChanged -= RowsCollectionChanged;
            }

            if (e.NewElement != null)
            {
                element = (CorePicker)e.NewElement;

                if (Control == null)
                {
                    var entry = new NoCaretField {
                        BorderStyle = UITextBorderStyle.RoundedRect
                    };

                    entry.EditingDidBegin += OnStarted;
                    entry.EditingDidEnd   += OnEnded;
                    entry.EditingChanged  += OnEditing;

                    _picker = new UIPickerView();

                    var width   = UIScreen.MainScreen.Bounds.Width;
                    var toolbar = new UIToolbar(new CGRect(0, 0, width, 44))
                    {
                        BarStyle = UIBarStyle.Default, Translucent = true
                    };
                    var spacer     = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);
                    var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, (o, a) =>
                    {
                        var s = (PickerSource1)_picker.Model;
                        if (s.SelectedIndex == -1 && Element.Items != null && Element.Items.Count > 0)
                        {
                            UpdatePickerSelectedIndex(0);
                        }
                        UpdatePickerFromModel(s);
                        entry.ResignFirstResponder();
                    });

                    toolbar.SetItems(new[] { spacer, doneButton }, false);

                    entry.InputView          = _picker;
                    entry.InputAccessoryView = toolbar;

                    _defaultTextColor = entry.TextColor;

                    SetNativeControl(entry);
                }

                _picker.Model = new PickerSource1(this);

                UpdatePicker();
                UpdateTextColor();

                ((INotifyCollectionChanged)e.NewElement.Items).CollectionChanged += RowsCollectionChanged;
            }

            base.OnElementChanged(e);
        }
Ejemplo n.º 2
0
 protected override void OnElementChanged(ElementChangedEventArgs <Picker> e)
 {
     base.OnElementChanged(e);
     if (e.NewElement != null && Control != null)
     {
         element          = (CorePicker)e.NewElement;
         element.Focused += FocusChangedEvent;
         controlColor     = element.EntryColor.ToCGColor();
         if (element.IsEntryUnderline)
         {
             Control.BorderStyle = UITextBorderStyle.None;
         }
         pickerView = (UIPickerView)Control.InputView;
     }
 }