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 @@