From 30ed64e5d2e19a45f627a1022659fc7bcc1bb838 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Sun, 18 Jul 2021 14:32:12 +0800 Subject: [PATCH] hc:DateTimePicker support for Validation --- .../Controls/Input/DatePicker.cs | 2 +- .../Controls/Input/DateTimePicker.cs | 18 +++++++++++++++--- .../Styles/Base/DateTimePickerBaseStyle.xaml | 2 ++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Shared/HandyControl_Shared/Controls/Input/DatePicker.cs b/src/Shared/HandyControl_Shared/Controls/Input/DatePicker.cs index 4f2dca85..7d2c5fc7 100644 --- a/src/Shared/HandyControl_Shared/Controls/Input/DatePicker.cs +++ b/src/Shared/HandyControl_Shared/Controls/Input/DatePicker.cs @@ -156,7 +156,7 @@ namespace HandyControl.Controls var isError = !result.Data; if (isError) { - SetCurrentValue(IsErrorProperty, true); + SetCurrentValue(IsErrorProperty, ValueBoxes.TrueBox); SetCurrentValue(ErrorStrProperty, result.Message); } else diff --git a/src/Shared/HandyControl_Shared/Controls/Input/DateTimePicker.cs b/src/Shared/HandyControl_Shared/Controls/Input/DateTimePicker.cs index 06dd9af6..7da94e1c 100644 --- a/src/Shared/HandyControl_Shared/Controls/Input/DateTimePicker.cs +++ b/src/Shared/HandyControl_Shared/Controls/Input/DateTimePicker.cs @@ -427,9 +427,21 @@ namespace HandyControl.Controls } } - IsError = !result.Data; - ErrorStr = result.Message; - return result.Data; + var isError = !result.Data; + if (isError) + { + SetCurrentValue(IsErrorProperty, ValueBoxes.TrueBox); + SetCurrentValue(ErrorStrProperty, result.Message); + } + else + { + isError = Validation.GetHasError(this); + if (isError) + { + SetCurrentValue(ErrorStrProperty, Validation.GetErrors(this)[0].ErrorContent); + } + } + return !isError; } public override string ToString() => SelectedDateTime?.ToString(DateTimeFormat) ?? string.Empty; diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Base/DateTimePickerBaseStyle.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Base/DateTimePickerBaseStyle.xaml index f3450c2d..90e0ae7f 100644 --- a/src/Shared/HandyControl_Shared/Themes/Styles/Base/DateTimePickerBaseStyle.xaml +++ b/src/Shared/HandyControl_Shared/Themes/Styles/Base/DateTimePickerBaseStyle.xaml @@ -14,6 +14,7 @@ + @@ -323,6 +324,7 @@