Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 扩展文本框可防止出现ValidationRule错误工具提示WPF_C#_Wpf_Xaml_Validationrules - Fatal编程技术网

C# 扩展文本框可防止出现ValidationRule错误工具提示WPF

C# 扩展文本框可防止出现ValidationRule错误工具提示WPF,c#,wpf,xaml,validationrules,C#,Wpf,Xaml,Validationrules,我对WPF和XAML比较陌生,我正在尝试创建一个扩展TextBox的自定义类,以便可以添加一些属性以简化验证设置。验证工作正常。问题是,当我调出XAML中的文本框时,新的文本框会更新边框以显示错误,但工具提示没有按预期显示(见下文) 在下图中,top的错误工具提示正确显示,但top的工具提示不正确 这是XAML <TextBox x:Name="StrTextBox3" Width="200" Height="50">

我对WPF和XAML比较陌生,我正在尝试创建一个扩展TextBox的自定义类,以便可以添加一些属性以简化验证设置。验证工作正常。问题是,当我调出XAML中的文本框时,新的文本框会更新边框以显示错误,但工具提示没有按预期显示(见下文)

在下图中,top的错误工具提示正确显示,但top的工具提示不正确

这是XAML

<TextBox x:Name="StrTextBox3" Width="200" Height="50">
    <TextBox.Text>
        <Binding Path="BinaryIntText" UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <validationRules:StrValidationRule ValidatorType="{x:Static validators:StringValidator.BinaryOnly_Validator}"/>
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>

<validationRules:ValidatedTextBox x:Name="VText" Width="200" Height="50">
    <TextBox.Text>
        <Binding Path="BinaryIntText2" UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <validationRules:StrValidationRule ValidatorType="{x:Static validators:StringValidator.BinaryOnly_Validator}"/>
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</validationRules:ValidatedTextBox>
好措施的验证规则

public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
    return ValidatorType.Validate(Convert.ToString(value)).Match (
        Right: result => new ValidationResult(true, null),
        Left: error => new ValidationResult(false, error));
}
如何启用此功能?我没有初始化一个或两个特定字段吗?我是不是错过了别的电话?我是否被风格困扰,或是其他比写这篇文章更快的直截了当的事情困扰


谢谢你

原来我很笨;通过简单地扩展文本框,文本框的默认样式没有被应用,并且将新样式设置为现有文本框的样式,或者干脆设置,解决了这个问题。

事实证明我很密集;通过简单地扩展文本框,文本框的默认样式没有被应用,并且将新样式设置为现有文本框的样式,或者干脆设置,就解决了这个问题。

只是一些其他的东西,不确定,但它不应该是
?很可能应该是这样,谢谢!然而,做出更改似乎不会影响任何事情。只是其他事情,不确定,但不应该是
?可能应该是这样,谢谢!然而,做出改变似乎不会影响任何事情。
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
    return ValidatorType.Validate(Convert.ToString(value)).Match (
        Right: result => new ValidationResult(true, null),
        Left: error => new ValidationResult(false, error));
}