Inheritance: Android.Widget.ListView
        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 = (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 = (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 MonthAdapter(Context context, CalendarPickerView calendar)
 {
     _calendar = calendar;
     _inflater = LayoutInflater.From(context);
 }
 public FluentInitializer InMode(CalendarPickerView.SelectionMode mode)
 {
     _calendar.Mode = mode;
     _calendar.ValidateAndUpdate();
     return this;
 }
 public FluentInitializer(CalendarPickerView calendar)
 {
     _calendar = calendar;
 }
 public FluentInitializer(CalendarPickerView calendar)
 {
     _calendar = calendar;
 }