public MyTaskCalendar() { InitializeComponent(); Dates = new ObservableCollection <DateTime>(); days.ItemsSource = Dates; days.SelectedItem = CurrentDate; InitializeDays(); MessagingCenter.Instance.Subscribe <CalendarPopup, (int, int)>(this, "updateMonthYear", (s, data) => { Device.BeginInvokeOnMainThread(() => { if (CurrentDate.Year + CurrentDate.Month != data.Item1 + data.Item2) { CurrentDate = new DateTime(data.Item1, data.Item2, 1); LoadDays(Convert.ToInt32(data.Item1), Convert.ToInt32(data.Item2)); days.SelectedItem = CurrentDate; days.ScrollTo(1); labelMonth.Text = Enum.GetName(typeof(Months), (Months)(CurrentDate.Month)); labelYear.Text = CurrentDate.Year.ToString(); if (CurrentDateChangedCommand != null) { CurrentDateChangedCommand.Execute(CurrentDate); } } }); }); }
private void TapGestureRecognizer_OnTapped(object sender, EventArgs e) { var frame = (Frame)sender; var currentDate = frame.BindingContext; days.SelectedItem = (DateTime)currentDate; SetCurrentDate((DateTime)currentDate); days.ScrollTo(CurrentDate.Day - 1, position: ScrollToPosition.Center); if (CurrentDateChangedCommand != null) { CurrentDateChangedCommand.Execute((DateTime)currentDate); } }