public FluentInitializer WithSelectedDates(ICollection <DateTime> selectedDates) { if (_calendar.Mode == CalendarPickerView.SelectionMode.Single && _calendar.SelectedDates.Count > 1) { throw new IllegalArgumentException("SINGLE mode can't be used with multiple selectedDates"); } if (_calendar.SelectedDates != null) { foreach (var date in selectedDates) { _calendar.SelectDate(date); } } int selectedIndex = -1; int todayIndex = -1; for (int i = 0; i < _calendar.Months.Count; i++) { var month = _calendar.Months[i]; if (selectedIndex == -1) { if (_calendar.SelectedCals.Any( selectedCal => CalendarPickerView.IsSameMonth(selectedCal, month))) { selectedIndex = i; } if (selectedIndex == -1 && todayIndex == -1 && CalendarPickerView.IsSameMonth(DateTime.Now, month)) { todayIndex = i; } } } if (selectedIndex != -1) { _calendar.ScrollToSelectedMonth(selectedIndex); } else if (todayIndex != -1) { _calendar.ScrollToSelectedMonth(todayIndex); } _calendar.ValidateAndUpdate(); return(this); }
protected override void OnModelChanged(VisualElement oldModel, VisualElement newModel) { _view = (XForms.Toolkit.Controls.CalendarView)newModel; base.OnModelChanged(oldModel, newModel); LayoutInflater inflatorservice = (LayoutInflater)Context.GetSystemService(Android.Content.Context.LayoutInflaterService); var containerView = (LinearLayout)inflatorservice.Inflate(Resource.Layout.calendar_picker, null, false); _pickerView = containerView.FindViewById<CalendarPickerView>(Resource.Id.calendar_view); _pickerView.Init(new DateTime(2014, 6, 1), new DateTime(2014, 6, 30)) .InMode(CalendarPickerView.SelectionMode.Single); _pickerView.OnDateSelected += (s, e) => { _view.NotifyDateSelected(e.SelectedDate); }; SetNativeControl(containerView); }
protected override void OnModelChanged(VisualElement oldModel, VisualElement newModel) { _view = (XForms.Toolkit.Controls.CalendarView)newModel; base.OnModelChanged(oldModel, newModel); LayoutInflater inflatorservice = (LayoutInflater)Context.GetSystemService(Android.Content.Context.LayoutInflaterService); var containerView = (LinearLayout)inflatorservice.Inflate(Resource.Layout.calendar_picker, null, false); _pickerView = containerView.FindViewById <CalendarPickerView>(Resource.Id.calendar_view); _pickerView.Init(new DateTime(2014, 6, 1), new DateTime(2014, 6, 30)) .InMode(CalendarPickerView.SelectionMode.Single); _pickerView.OnDateSelected += (s, e) => { _view.NotifyDateSelected(e.SelectedDate); }; SetNativeControl(containerView); }
public FluentInitializer InMode(CalendarPickerView.SelectionMode mode) { _calendar.Mode = mode; _calendar.ValidateAndUpdate(); return this; }
public FluentInitializer(CalendarPickerView calendar) { _calendar = calendar; }
public MonthAdapter(Context context, CalendarPickerView calendar) { _calendar = calendar; _inflater = LayoutInflater.From(context); }