| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.ComponentModel;using System.Linq;using System.Threading.Tasks;using comal.timesheets.Tasks;using Comal.Classes;using InABox.Clients;using InABox.Configuration;using InABox.Core;using Xamarin.Forms;using Xamarin.Forms.Xaml;using XF.Material.Forms.UI;using XF.Material.Forms.UI.Dialogs;namespace comal.timesheets{    public delegate void CustomBooleanValueChanged(bool value);    class CustomBoolean : Grid    {        public event CustomBooleanValueChanged OnCustomBooleanValueChanged;        public RadioButton trueBtn = new RadioButton();        public RadioButton falseBtn = new RadioButton();        private bool trueFalse;        public bool ValueChanged { get; set; }        public bool Value        {            get            {                if (trueBtn.IsChecked)                {                    trueFalse = true;                }                else if (falseBtn.IsChecked)                {                    trueFalse = false;                }                return trueFalse;            }            set            {                trueFalse = value;                if (trueFalse)                {                    trueBtn.IsChecked = true;                    falseBtn.IsChecked = false;                }                if (!trueFalse)                {                    falseBtn.IsChecked = true;                    trueBtn.IsChecked = false;                }            }        }        public void SetFalseValue()        {            falseBtn.IsChecked = true;            trueBtn.IsChecked = false;        }                public CustomBoolean(int rbGroup)        {            new ColumnDefinition { Width = new GridLength(70, GridUnitType.Absolute) };            new ColumnDefinition { Width = new GridLength(70, GridUnitType.Absolute) };            trueBtn.Content = "Yes";            trueBtn.FontSize = Device.GetNamedSize(NamedSize.Small, trueBtn);                        trueBtn.TextColor = Color.Black;            trueBtn.GroupName = rbGroup.ToString();            trueBtn.HorizontalOptions = LayoutOptions.Center;            trueBtn.VerticalOptions = LayoutOptions.Center;            trueBtn.CheckedChanged += trueBtnSelected;            Grid.SetColumn(trueBtn, 0);            falseBtn.Content = "No";            falseBtn.FontSize = Device.GetNamedSize(NamedSize.Small, trueBtn);            falseBtn.TextColor = Color.Black;            falseBtn.GroupName = rbGroup.ToString();            falseBtn.HorizontalOptions = LayoutOptions.Center;            falseBtn.VerticalOptions = LayoutOptions.Center;            falseBtn.CheckedChanged += falseBtnSelected;            Grid.SetColumn(falseBtn, 1);            Children.Add(trueBtn);            Children.Add(falseBtn);            Padding = new Thickness(5);                    }        private void trueBtnSelected(object sender, EventArgs e)        {            ValueChanged = true;            OnCustomBooleanValueChanged?.Invoke(true);                   }        private void falseBtnSelected(object sender, EventArgs e)        {            ValueChanged = true;            OnCustomBooleanValueChanged?.Invoke(false);        }    }}
 |