using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; using Xamarin.Forms.Xaml; namespace comal.timesheets { public delegate void FilterOptionChanged(string filterOption); [XamlCompilation(XamlCompilationOptions.Compile)] public partial class FilterOptionsControl : ContentView { public event FilterOptionChanged OnFilterOptionChanged; public List Options { get; set; } public string CurrentOption { get; set; } public FilterOptionsControl() { InitializeComponent(); Options = new List(); } public void CreateRadioButtonsAndSetDefault(string defaultOption) { CurrentOption = defaultOption; Device.BeginInvokeOnMainThread(() => { foreach (string option in Options) { RadioButton radioButton = new RadioButton(); radioButton.Content = option; radioButton.FontAttributes = FontAttributes.Bold; radioButton.TextColor = Color.DimGray; radioButton.Margin = new Thickness(3, 0, 3, 2); radioButton.BorderColor = Color.FromHex("#9f4576"); radioButton.BorderWidth = 1; radioButton.Padding = 3; radioButton.BackgroundColor = Color.White; radioButton.CornerRadius = 10; if (option == defaultOption) { radioButton.IsChecked = true; } radioButton.CheckedChanged += ((object sender, CheckedChangedEventArgs e) => { OnFilterOptionChanged?.Invoke(radioButton.Content.ToString()); }); optionsFlexLayout.Children.Add(radioButton); } }); } } }