MobileTimeSelector.xaml.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Syncfusion.XForms.Pickers;
  7. using Xamarin.Forms;
  8. using Xamarin.Forms.Xaml;
  9. namespace InABox.Mobile
  10. {
  11. public class TimeSelectorChangedEventArgs : EventArgs
  12. {
  13. public TimeSpan Time { get; private set; }
  14. public TimeSelectorChangedEventArgs(TimeSpan time)
  15. {
  16. Time = time;
  17. }
  18. }
  19. public delegate void TimeSelectorChangedEvent(object sender, TimeSelectorChangedEventArgs args);
  20. [XamlCompilation(XamlCompilationOptions.Compile)]
  21. public partial class MobileTimeSelector
  22. {
  23. public event TimeSelectorChangedEvent Changed;
  24. public event EventHandler Cancelled;
  25. public TimeSpan Time
  26. {
  27. get => Picker.Time;
  28. set => Picker.Time = value;
  29. }
  30. public MobileTimeSelector()
  31. {
  32. InitializeComponent();
  33. }
  34. private void Clear_OnClicked(object sender, MobileButtonClickEventArgs args)
  35. {
  36. Picker.Time = TimeSpan.Zero;
  37. }
  38. private void Now_OnClicked(object sender, MobileButtonClickEventArgs args)
  39. {
  40. Picker.Time = DateTime.Now.TimeOfDay;
  41. }
  42. private void Select_OnClicked(object sender, MobileMenuButtonClickedEventArgs args)
  43. {
  44. Changed?.Invoke(this, new TimeSelectorChangedEventArgs(Picker.Time));
  45. }
  46. private void Cancel_OnClicked(object sender, MobileMenuButtonClickedEventArgs args)
  47. {
  48. Cancelled?.Invoke(this, EventArgs.Empty);
  49. }
  50. }
  51. }