input elements support for Validation

This commit is contained in:
NaBian committed 2021-07-18 15:02:42 +08:00
1 parent 1d0744b348
commit b7663e3e75
4 files changed
+54 -5

No files matched your search

@@ -1602,7 +1602,7 @@
<ControlTemplate x:Key="PreviewSliderHorizontal" TargetType="hc:PreviewSlider">
<hc:SimplePanel>
<Border x:Name="TrackBackground" Background="{TemplateBinding Background}" Height="2" VerticalAlignment="center" Margin="9,0" />
<Track Margin="9,0" x:Name="PART_Track">
<Track VerticalAlignment="center" Margin="9,0" x:Name="PART_Track">
<Track.DecreaseRepeatButton>
<RepeatButton Command="{x:Static Slider.DecreaseLarge}" Background="{DynamicResource PrimaryBrush}" Style="{StaticResource PreviewSliderRepeatButtonHorizontalStyle}" />
</Track.DecreaseRepeatButton>
@@ -1618,7 +1618,7 @@
<ControlTemplate x:Key="PreviewSliderVertical" TargetType="hc:PreviewSlider">
<hc:SimplePanel>
<Border x:Name="TrackBackground" Background="{TemplateBinding Background}" Width="2" HorizontalAlignment="center" Margin="0,9" />
<Track Margin="0,9" x:Name="PART_Track">
<Track HorizontalAlignment="center" Margin="0,9" x:Name="PART_Track">
<Track.DecreaseRepeatButton>
<RepeatButton Command="{x:Static Slider.DecreaseLarge}" Background="{DynamicResource PrimaryBrush}" Style="{StaticResource PreviewSliderRepeatButtonVerticalStyle}" />
</Track.DecreaseRepeatButton>
@@ -5049,6 +5049,7 @@
<Setter Property="Padding" Value="{StaticResource DefaultInputPadding}" />
<Setter Property="Template" Value="{StaticResource ComboBoxTemplate}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Style.Triggers>
<Trigger Property="IsEditable" Value="true">
<Setter Property="IsTabStop" Value="false" />
@@ -5812,6 +5813,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="ComboBoxPlusBaseStyle" BasedOn="{StaticResource ComboBoxExtendBaseStyle}" TargetType="hc:ComboBox">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource ComboBoxPlusTopTemplate}" />
<Style.Triggers>
<MultiTrigger>
@@ -6090,6 +6092,7 @@
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
@@ -6299,6 +6302,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="TextBoxPlusBaseStyle" BasedOn="{StaticResource TextBoxExtendBaseStyle}" TargetType="hc:TextBox">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource TextBoxPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
@@ -6975,6 +6979,7 @@
<Setter Property="Padding" Value="{StaticResource DefaultInputPadding}" />
<Setter Property="Template" Value="{StaticResource CheckComboBoxTemplate}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
</Style>
<ControlTemplate x:Key="CheckComboBoxExtendTopTemplate" TargetType="hc:CheckComboBox">
<Grid>
@@ -7331,6 +7336,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="CheckComboBoxPlusBaseStyle" BasedOn="{StaticResource CheckComboBoxExtendBaseStyle}" TargetType="hc:CheckComboBox">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource CheckComboBoxPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
@@ -7614,6 +7620,7 @@
<Setter Property="Padding" Value="{StaticResource DefaultInputPadding}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DatePicker">
@@ -7917,6 +7924,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="DatePickerPlusBaseStyle" BasedOn="{StaticResource DatePickerExtendBaseStyle}" TargetType="hc:DatePicker">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="CaretBrush" Value="{DynamicResource PrimaryTextBrush}" />
<Setter Property="Template" Value="{StaticResource DatePickerPlusTopTemplate}" />
<Style.Triggers>
@@ -7936,6 +7944,7 @@
<Setter Property="BorderThickness" Value="1" />
<Setter Property="CaretBrush" Value="{DynamicResource PrimaryTextBrush}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="hc:DateTimePicker">
@@ -8239,6 +8248,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="DateTimePickerPlusBaseStyle" BasedOn="{StaticResource DateTimePickerExtendBaseStyle}" TargetType="hc:DateTimePicker">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource DateTimePickerPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
@@ -9030,6 +9040,7 @@
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="hc:NumericUpDown">
@@ -9288,6 +9299,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="NumericUpDownPlusBaseStyle" BasedOn="{StaticResource NumericUpDownExtendBaseStyle}" TargetType="hc:NumericUpDown">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource NumericUpDownPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
@@ -9312,6 +9324,7 @@
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="PasswordBox">
@@ -9557,6 +9570,8 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="PasswordBoxPlusBaseStyle" TargetType="hc:PasswordBox">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Background" Value="{DynamicResource RegionBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}" />
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}" />
@@ -10478,6 +10493,7 @@
<Setter Property="BorderThickness" Value="1" />
<Setter Property="CaretBrush" Value="{DynamicResource PrimaryTextBrush}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="hc:TimePicker">
@@ -10781,6 +10797,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="TimePickerPlusBaseStyle" BasedOn="{StaticResource TimePickerExtendBaseStyle}" TargetType="hc:TimePicker">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource TimePickerPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
@@ -258,9 +258,21 @@ namespace HandyControl.Controls
result = OperationResult.Success();
}
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;
}
private static void OnShowPasswordChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
@@ -20,6 +20,7 @@
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/>
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="PasswordBox">
@@ -272,6 +273,8 @@
</ControlTemplate>
<Style x:Key="PasswordBoxPlusBaseStyle" TargetType="hc:PasswordBox">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}"/>
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
<Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
@@ -5090,6 +5090,7 @@
<Setter Property="Padding" Value="{StaticResource DefaultInputPadding}" />
<Setter Property="Template" Value="{StaticResource ComboBoxTemplate}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Style.Triggers>
<Trigger Property="IsEditable" Value="true">
<Setter Property="IsTabStop" Value="false" />
@@ -5895,6 +5896,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="ComboBoxPlusBaseStyle" BasedOn="{StaticResource ComboBoxExtendBaseStyle}" TargetType="hc:ComboBox">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource ComboBoxPlusTopTemplate}" />
<Style.Triggers>
<MultiTrigger>
@@ -6173,6 +6175,7 @@
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
@@ -6382,6 +6385,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="TextBoxPlusBaseStyle" BasedOn="{StaticResource TextBoxExtendBaseStyle}" TargetType="hc:TextBox">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource TextBoxPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
@@ -7065,6 +7069,7 @@
<Setter Property="Padding" Value="{StaticResource DefaultInputPadding}" />
<Setter Property="Template" Value="{StaticResource CheckComboBoxTemplate}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
</Style>
<ControlTemplate x:Key="CheckComboBoxExtendTopTemplate" TargetType="hc:CheckComboBox">
<Grid>
@@ -7449,6 +7454,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="CheckComboBoxPlusBaseStyle" BasedOn="{StaticResource CheckComboBoxExtendBaseStyle}" TargetType="hc:CheckComboBox">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource CheckComboBoxPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
@@ -7732,6 +7738,7 @@
<Setter Property="Padding" Value="{StaticResource DefaultInputPadding}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DatePicker">
@@ -8035,6 +8042,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="DatePickerPlusBaseStyle" BasedOn="{StaticResource DatePickerExtendBaseStyle}" TargetType="hc:DatePicker">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="CaretBrush" Value="{DynamicResource PrimaryTextBrush}" />
<Setter Property="Template" Value="{StaticResource DatePickerPlusTopTemplate}" />
<Style.Triggers>
@@ -8054,6 +8062,7 @@
<Setter Property="BorderThickness" Value="1" />
<Setter Property="CaretBrush" Value="{DynamicResource PrimaryTextBrush}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="hc:DateTimePicker">
@@ -8357,6 +8366,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="DateTimePickerPlusBaseStyle" BasedOn="{StaticResource DateTimePickerExtendBaseStyle}" TargetType="hc:DateTimePicker">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource DateTimePickerPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
@@ -9148,6 +9158,7 @@
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="hc:NumericUpDown">
@@ -9406,6 +9417,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="NumericUpDownPlusBaseStyle" BasedOn="{StaticResource NumericUpDownExtendBaseStyle}" TargetType="hc:NumericUpDown">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource NumericUpDownPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
@@ -9430,6 +9442,7 @@
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="PasswordBox">
@@ -9675,6 +9688,8 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="PasswordBoxPlusBaseStyle" TargetType="hc:PasswordBox">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Background" Value="{DynamicResource RegionBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}" />
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}" />
@@ -10596,6 +10611,7 @@
<Setter Property="BorderThickness" Value="1" />
<Setter Property="CaretBrush" Value="{DynamicResource PrimaryTextBrush}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="hc:TimePicker">
@@ -10899,6 +10915,7 @@
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="TimePickerPlusBaseStyle" BasedOn="{StaticResource TimePickerExtendBaseStyle}" TargetType="hc:TimePicker">
<Setter Property="IsError" Value="{Binding Path=(Validation.HasError),RelativeSource={RelativeSource Self}}" />
<Setter Property="Template" Value="{StaticResource TimePickerPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">