1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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<string> Options { get; set; }
- public string CurrentOption { get; set; }
- public FilterOptionsControl()
- {
- InitializeComponent();
- Options = new List<string>();
- }
- 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);
- }
- });
- }
- }
- }
|