From 0200ca4c620664ce2ea8a58e88ca12e0c0c442ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=9D=BE=E6=9E=9C?= Date: Fri, 11 Apr 2025 20:56:29 +0800 Subject: [PATCH] Fix datepicker not refreshing format when date format changes (#18599) * fix DatePicker not refresh when MonthFormat or YearFormat changed * use SetSelectedDateText instead --- src/Avalonia.Controls/DateTimePickers/DatePicker.cs | 4 ++++ src/Avalonia.Controls/DateTimePickers/DatePickerPresenter.cs | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/Avalonia.Controls/DateTimePickers/DatePicker.cs b/src/Avalonia.Controls/DateTimePickers/DatePicker.cs index 837d8ec9a3..ac2ca3db8b 100644 --- a/src/Avalonia.Controls/DateTimePickers/DatePicker.cs +++ b/src/Avalonia.Controls/DateTimePickers/DatePicker.cs @@ -293,6 +293,10 @@ namespace Avalonia.Controls var (oldValue, newValue) = change.GetOldAndNewValue(); OnSelectedDateChanged(this, new DatePickerSelectedValueChangedEventArgs(oldValue, newValue)); } + else if (change.Property == MonthFormatProperty || change.Property == YearFormatProperty || change.Property == DayFormatProperty) + { + SetSelectedDateText(); + } } private void OnDismissPicker(object? sender, EventArgs e) diff --git a/src/Avalonia.Controls/DateTimePickers/DatePickerPresenter.cs b/src/Avalonia.Controls/DateTimePickers/DatePickerPresenter.cs index 1c72509168..b745ed7779 100644 --- a/src/Avalonia.Controls/DateTimePickers/DatePickerPresenter.cs +++ b/src/Avalonia.Controls/DateTimePickers/DatePickerPresenter.cs @@ -312,6 +312,10 @@ namespace Avalonia.Controls { OnDateRangeChanged(this, change); } + else if (change.Property == MonthFormatProperty || change.Property == YearFormatProperty || change.Property == DayFormatProperty) + { + InitPicker(); + } } protected override void OnKeyDown(KeyEventArgs e)