= $u_time + 86400) { $modifiedDate = get_the_modified_time('F jS, Y'); echo 'Última modificación: '.$modifiedDate.''; } }?>

Radio Button / Checkbox para Xamarin Forms

Aquí os dejo un nuevo custom control para Xamarin Forms.

Es un Checkbox que trabaja con una propiedad bool que es bindable. Puedes asociar la imagen que desees cuando el valor es positivo o negativo. Además como el control hereda de Button puedes si lo deseas usar un Comando para ejecutar cualquier otra acción.

Os dejo el código, pero recordar que lo podéis descargar desde mi GitHub: https://github.com/boletus151:

    public class RadioButton : Button
    {
        public RadioButton()
        {
            this.Clicked += this.OnClicked;
        }

        public bool Checked
        {
            get
            {
                return (bool)this.GetValue(CheckedProperty);
            }
            set
            {
                this.SetValue(CheckedProperty, value);
                this.OnPropertyChanged();
            }
        }

        public string CheckedImage
        {
            get
            {
                return (string)this.GetValue(CheckedImageProperty);
            }
            set
            {
                this.SetValue(CheckedImageProperty, value);
            }
        }

        public string UncheckedImage
        {
            get
            {
                return (string)this.GetValue(UncheckedImageProperty);
            }
            set
            {
                this.SetValue(UncheckedImageProperty, value);
            }
        }

        public void OnClicked(object sender, EventArgs e)
        {
            this.Checked = !this.Checked;
        }

        protected override void OnBindingContextChanged()
        {
            base.OnBindingContextChanged();
            OnCheckedChanged(this, this.Checked, this.Checked);
        }

        private static void OnCheckedChanged(BindableObject bindable, object oldvalue, object newvalue)
        {
            var radioButton = (RadioButton)bindable;
            if(radioButton == null)
            {
                return;
            }

            if(newvalue != null && (Boolean)newvalue)
                radioButton.Image = radioButton.CheckedImage;
            else
                radioButton.Image = radioButton.UncheckedImage;
        }

        public static BindableProperty CheckedProperty = BindableProperty.Create(nameof(Checked), typeof(bool?), typeof(RadioButton), false, BindingMode.TwoWay, null, OnCheckedChanged);

        public static BindableProperty CheckedImageProperty = BindableProperty.Create(nameof(CheckedImage), typeof(string), typeof(RadioButton), string.Empty);

        public static BindableProperty UncheckedImageProperty = BindableProperty.Create(nameof(UncheckedImage), typeof(string), typeof(RadioButton), string.Empty);
    }

 

Leave a Reply

Your email address will not be published. Required fields are marked *