MobileDateSelector.xaml.cs 1.6 KB

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