diff --git a/src/Avalonia.Controls/DateTimePickers/DatePicker.cs b/src/Avalonia.Controls/DateTimePickers/DatePicker.cs index 4edc8467d5..8939b854e9 100644 --- a/src/Avalonia.Controls/DateTimePickers/DatePicker.cs +++ b/src/Avalonia.Controls/DateTimePickers/DatePicker.cs @@ -14,504 +14,6 @@ namespace Avalonia.Controls /// public class DatePicker : TemplatedControl { - public DatePicker() - { - PseudoClasses.Set(":hasnodate", true); - _presenter = new DatePickerPresenter(); - var now = DateTimeOffset.Now; - _minYear = new DateTimeOffset(now.Date.Year - 100, 1, 1, 0, 0, 0, now.Offset); - _maxYear = new DateTimeOffset(now.Date.Year + 100, 12, 31, 0, 0, 0, now.Offset); - - _presenter.DatePicked += OnPresenterDatePicked; - } - - /// - /// Define the Property - /// - public static readonly DirectProperty DayFormatProperty = - AvaloniaProperty.RegisterDirect("DayFormat", - x => x.DayFormat, (x, v) => x.DayFormat = v); - - /// - /// Defines the Property - /// - public static readonly DirectProperty DayVisibleProperty = - AvaloniaProperty.RegisterDirect("DayVisible", - x => x.DayVisible, (x, v) => x.DayVisible = v); - - /// - /// Defines the Property - /// - public static readonly StyledProperty HeaderProperty = - AvaloniaProperty.Register("Header"); - - /// - /// Defines the Property - /// - public static readonly StyledProperty HeaderTemplateProperty = - AvaloniaProperty.Register("HeaderTemplate"); - - /// - /// Defines the Property - /// - public static readonly DirectProperty MaxYearProperty = - AvaloniaProperty.RegisterDirect("MaxYear", x => x.MaxYear, (x, v) => x.MaxYear = v); - - /// - /// Defines the Property - /// - public static readonly DirectProperty MinYearProperty = - AvaloniaProperty.RegisterDirect("MinYear", x => x.MinYear, (x, v) => x.MinYear = v); - - /// - /// Defines the Property - /// - public static readonly DirectProperty MonthFormatProperty = - AvaloniaProperty.RegisterDirect("MonthFormat", x => x.MonthFormat, (x, v) => x.MonthFormat = v); - - /// - /// Defines the Property - /// - public static readonly DirectProperty MonthVisibleProperty = - AvaloniaProperty.RegisterDirect("MonthVisible", x => x.MonthVisible, (x, v) => x.MonthVisible = v); - - /// - /// Defiens the Property - /// - public static readonly DirectProperty YearFormatProperty = - AvaloniaProperty.RegisterDirect("YearFormat", x => x.YearFormat, (x, v) => x.YearFormat = v); - - /// - /// Defines the Property - /// - public static readonly DirectProperty YearVisibleProperty = - AvaloniaProperty.RegisterDirect("YearVisible", x => x.YearVisible, (x, v) => x.YearVisible = v); - - /// - /// Defines the Property - /// - public static readonly DirectProperty SelectedDateProperty = - AvaloniaProperty.RegisterDirect("SelectedDate", x => x.SelectedDate, (x, v) => x.SelectedDate = v); - - /// - /// Gets or sets the day format - /// - public string DayFormat - { - get => _dayFormat; - set => SetAndRaise(DayFormatProperty, ref _dayFormat, value); - } - - /// - /// Gets or sets whether the day is visible - /// - public bool DayVisible - { - get => _dayVisible; - set - { - SetAndRaise(DayVisibleProperty, ref _dayVisible, value); - SetGrid(); - } - } - - /// - /// Gets or sets the DatePicker header - /// - public object Header - { - get => GetValue(HeaderProperty); - set => SetValue(HeaderProperty, value); - } - - /// - /// Gets or sets the header template - /// - public IDataTemplate HeaderTemplate - { - get => GetValue(HeaderTemplateProperty); - set => SetValue(HeaderTemplateProperty, value); - } - - /// - /// Gets or sets the maximum year for the picker - /// - public DateTimeOffset MaxYear - { - get => _maxYear; - set - { - if (value < MinYear) - throw new InvalidOperationException("MaxDate cannot be less than MinDate"); - SetAndRaise(MaxYearProperty, ref _maxYear, value); - - if (SelectedDate.HasValue && SelectedDate.Value > value) - SelectedDate = value; - } - } - - /// - /// Gets or sets the minimum year for the picker - /// - public DateTimeOffset MinYear - { - get => _minYear; - set - { - if (value > MaxYear) - throw new InvalidOperationException("MinDate cannot be greater than MaxDate"); - SetAndRaise(MinYearProperty, ref _minYear, value); - - if (SelectedDate.HasValue && SelectedDate.Value < value) - SelectedDate = value; - } - } - - /// - /// Gets or sets the month format - /// - public string MonthFormat - { - get => _monthFormat; - set => SetAndRaise(MonthFormatProperty, ref _monthFormat, value); - } - - /// - /// Gets or sets whether the month is visible - /// - public bool MonthVisible - { - get => _monthVisible; - set - { - SetAndRaise(MonthVisibleProperty, ref _monthVisible, value); - SetGrid(); - } - } - - /// - /// Gets or sets the year format - /// - public string YearFormat - { - get => _yearFormat; - set => SetAndRaise(YearFormatProperty, ref _yearFormat, value); - } - - /// - /// Gets or sets whether the year is visible - /// - public bool YearVisible - { - get => _yearVisible; - set - { - SetAndRaise(YearVisibleProperty, ref _yearVisible, value); - SetGrid(); - } - } - - /// - /// Gets or sets the Selected Date for the picker, can be null - /// - public DateTimeOffset? SelectedDate - { - get => _selectedDate; - set - { - var old = _selectedDate; - SetAndRaise(SelectedDateProperty, ref _selectedDate, value); - SetSelectedDateText(); - OnSelectedDateChanged(this, new DatePickerSelectedValueChangedEventArgs(old, value)); - } - } - - /// - /// Raised when the changes - /// - public event EventHandler SelectedDateChanged; - - - protected override void OnApplyTemplate(TemplateAppliedEventArgs e) - { - _areControlsAvailable = false; - base.OnApplyTemplate(e); - _flyoutButton = e.NameScope.Find