TextBox验证未显示错误

托尼·维塔比勒

我已经建立了一个用于在WPF应用程序中编辑数据的表单。我正在向表单添加验证。我开始通过这篇文章这一个,但错误的模板或者显示所有的时间或根本没有。我不知道我在做什么错。

这是我正在使用ControlTemplateStyle它们在表单的资源中:

<ControlTemplate x:Key="TextBoxErrorTemplate">
    <StackPanel ClipToBounds="False" Orientation="Horizontal">
        <Border BorderBrush="Red"
                BorderThickness="1"
                Margin="15,0,0,0">
            <AdornedElementPlaceholder Name="adornedElement" />
        </Border>
        <Image HorizontalAlignment="Right"
               VerticalAlignment="Top"
               Width="20"
               Height="20"
               Margin="0,-5,-5,0"
               Source="{StaticResource ErrorImage}"
               ToolTip="{Binding Converter={StaticResource ErrorConverter}, 
                                 ElementName=adornedElement, 
                                 Path=AdornedElement.(Validation.Errors)}" />
    </StackPanel>
</ControlTemplate>

<Style x:Key="TextBoxErrorStyle" TargetType="{x:Type TextBox}">
    <Style.Triggers>
        <Trigger Property="Validation.HasError" Value="true">
            <Setter Property="ToolTip"
                    Value="Binding Converter={StaticResource ErrorConverter}, 
                                   RelativeSource={x:Static RelativeSource.Self}, 
                                   Path=AdornedElement.(Validation.Errors)}"/>
        </Trigger>
    </Style.Triggers>
</Style>

TextBox是使用这些部分的:

<TextBox Grid.Column="0"
            Margin="5,0"
            MaxLength="50"
            Name="NameBox"
            TabIndex="0"
            Validation.ErrorTemplate="{StaticResource TextBoxErrorTemplate}"
            Style="{StaticResource TextBoxErrorStyle}"
            TextAlignment="Left"
            TextChanged="NameBox_TextChanged"
            VerticalAlignment="Center"
            Visibility="{Binding Converter={StaticResource InvertedBoolToVisibility}, Path=AutoConfigureCameras, RelativeSource={RelativeSource AncestorType={x:Type cs:EditLPRDetails}}}">
    <TextBox.Text>
        <Binding Mode="TwoWay" Path="Name" UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <cs:RegexValidationRule Pattern="{StaticResource NamePattern}" />
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>

请注意,RegexValidationRule该类中的验证逻辑起作用。当我将有效字符串放入时TextBox,它返回成功,当我将无效字符串放入其中时,它返回失败。无论出什么问题,我都相信问题出在哪里Style's Trigger

托尼·维塔比勒

我找到了解决我问题的方法。

原来,我的对话框包含一个TabControl,这就是问题的原因。我在本文中找到了答案本质上,我需要将TabItem包含要验证的控件的内容放入控件内部,而AdornerDecorator控件本身本身也在控件内部Border完成后,所有错误指示符将正确显示。

我最初没有包含我的控件位于a内部的事实,TabControl因为我不知道这很重要。活到老,学到老。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

TextBox验证未显示错误

来自分类Dev

验证错误未显示

来自分类Dev

条带验证错误未显示

来自分类Dev

cakePHP验证错误未显示

来自分类Dev

未显示Codeigniter验证错误

来自分类Dev

MVC视图未显示验证错误

来自分类Dev

Codeigniter表单验证未显示错误

来自分类Dev

Laravel 5.2-验证错误未显示

来自分类Dev

在登录页面上未显示验证错误

来自分类Dev

雪花验证功能未显示错误

来自分类Dev

MVC视图未显示验证错误

来自分类Dev

Bootstrap错误验证颜色未显示

来自分类Dev

gui 上未显示角度验证错误?

来自分类Dev

HTML验证程序显示PHP未显示的PHP错误

来自分类Dev

自定义验证器未显示错误

来自分类Dev

剃刀@ Html.ValidationMessageFor()未显示“验证错误消息”

来自分类Dev

Spring MVC验证器中未显示错误消息

来自分类Dev

动态淘汰赛验证未显示错误消息

来自分类Dev

自定义错误验证消息未显示

来自分类Dev

PrimeFaces输入组件在验证错误时未突出显示

来自分类Dev

React Native,来自Formik-Yup验证的错误未显示

来自分类Dev

文本表单字段验证器错误消息未显示

来自分类Dev

表单验证错误未显示在Django的HTML页面中

来自分类Dev

表单验证错误消息未显示在ModelForm中

来自分类Dev

自定义验证器未显示错误

来自分类Dev

覆盖errorPlacement时,jQuery验证未显示正确的错误

来自分类Dev

PHP验证错误未显示在下拉列表上

来自分类Dev

验证错误未与AJAX一起显示

来自分类Dev

Spring MVC验证器中未显示错误消息