CustomBoolean.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using InABox.Mobile;
  3. using PRS.Mobile;
  4. using Syncfusion.DocIO.DLS;
  5. using Xamarin.Forms;
  6. namespace PRS.Mobile
  7. {
  8. public delegate void CustomBooleanValueChanged(bool value);
  9. class CustomBoolean : MobileTabStrip
  10. {
  11. public event CustomBooleanValueChanged OnCustomBooleanValueChanged;
  12. public bool ValueChanged { get; set; }
  13. public bool Value
  14. {
  15. get => SelectedItem?.Index == 0;
  16. set => SelectedItem = (value ? Items[0] : Items[1]);
  17. }
  18. public string TrueValue
  19. {
  20. get => Items[0].Text;
  21. set => Items[0].Text = value;
  22. }
  23. public string FalseValue
  24. {
  25. get => Items[1].Text;
  26. set => Items[1].Text = value;
  27. }
  28. public CustomBoolean(int rbGroup)
  29. {
  30. HeightRequest = 35;
  31. Items.Add(new MobileTabStripItem() { Text = "Yes"});
  32. Items.Add(new MobileTabStripItem() { Text = "No"});
  33. BorderColor = XF.Material.Forms.Material.Color.SecondaryVariant;
  34. UnselectedBackground = XF.Material.Forms.Material.Color.Secondary;
  35. UnselectedForeground = XF.Material.Forms.Material.Color.OnSecondary;
  36. SelectedBackground = XF.Material.Forms.Material.Color.Surface;
  37. SelectedForeground = XF.Material.Forms.Material.Color.OnSurface;
  38. SelectionChanged += (sender, args) =>
  39. {
  40. OnCustomBooleanValueChanged?.Invoke(Value);
  41. };
  42. }
  43. }
  44. }