MobileCheckBox.xaml.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using System.Globalization;
  3. using Xamarin.Forms;
  4. using Xamarin.Forms.Xaml;
  5. namespace InABox.Mobile
  6. {
  7. [XamlCompilation(XamlCompilationOptions.Compile)]
  8. public partial class MobileCheckBox
  9. {
  10. public static readonly BindableProperty IsCheckedProperty = BindableProperty.Create(
  11. nameof(IsChecked),
  12. typeof(bool),
  13. typeof(MobileCheckBox),
  14. false,
  15. BindingMode.TwoWay,
  16. propertyChanged: (sender,oldvalue,newvalue) => CheckChanged(sender as MobileCheckBox, (bool)oldvalue, (bool)newvalue));
  17. private static void CheckChanged(MobileCheckBox bindable, bool oldValue, bool newValue)
  18. {
  19. }
  20. public bool IsChecked
  21. {
  22. get => (bool)GetValue(IsCheckedProperty);
  23. set
  24. {
  25. SetValue(IsCheckedProperty, value);
  26. OnPropertyChanged(nameof(IsChecked));
  27. }
  28. }
  29. public event EventHandler Changed;
  30. public MobileCheckBox()
  31. {
  32. InitializeComponent();
  33. }
  34. private void ToggleCheck(object sender, EventArgs e)
  35. {
  36. IsChecked = !IsChecked;
  37. Changed?.Invoke(this,EventArgs.Empty);
  38. }
  39. }
  40. }