MobileDateSelector.xaml.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using Syncfusion.XForms.Pickers;
  3. using Xamarin.Forms.Xaml;
  4. namespace InABox.Mobile
  5. {
  6. public class DateSelectorChangedArgs : EventArgs
  7. {
  8. public DateTime Date { get; private set; }
  9. public DateSelectorChangedArgs(DateTime date)
  10. {
  11. Date = date;
  12. }
  13. }
  14. public delegate void DateSelectorChanged(object sender, DateSelectorChangedArgs args);
  15. [XamlCompilation(XamlCompilationOptions.Compile)]
  16. public partial class MobileDateSelector
  17. {
  18. public event DateSelectorChanged Changed;
  19. public event EventHandler Cancelled;
  20. public DateTime Date
  21. {
  22. get => Picker.Date;
  23. set => Picker.Date = value;
  24. }
  25. public MobileDateSelector()
  26. {
  27. InitializeComponent();
  28. }
  29. private void Clear_OnClicked(object sender, MobileButtonClickEventArgs args)
  30. {
  31. Picker.Date = DateTime.MinValue;
  32. }
  33. private void Now_OnClicked(object sender, MobileButtonClickEventArgs args)
  34. {
  35. Picker.Date = DateTime.Today;
  36. }
  37. private void Select_OnClicked(object sender, MobileMenuButtonClickedEventArgs args)
  38. {
  39. Changed?.Invoke(this, new DateSelectorChangedArgs(Picker.Date));
  40. }
  41. private void Cancel_OnClicked(object sender, MobileMenuButtonClickedEventArgs args)
  42. {
  43. Cancelled?.Invoke(this, EventArgs.Empty);
  44. }
  45. }
  46. }