首页 > 解决方案 > WPF TextBox 错误消息可见且在 TextBox 中写入文本时不会消失

问题描述

当我在 TextBox 中构建和运行代码时已经显示错误消息并且在 TextBox 中写入文本时不会消失我正在使用 Visual Studio Community Edition 2017 我正在使用 MaterialDesignThemes 版本2.6.0

我使用了 DemoApp 中的 TextBox 代码

<TextBox
    x:Name="NameTextBox"
    materialDesign:HintAssist.Hint="Name"
    VerticalAlignment="Top"
    HorizontalAlignment="Center"
    Width="200">
    <TextBox.Text>
        <Binding
            Path="Name"
            UpdateSourceTrigger="PropertyChanged">
            <Binding.ValidationRules>
                <rules:NotEmptyValidationRule
                    ValidatesOnTargetUpdated="True"
                    xmlns:rules="clr-namespace:Spirit.Domain" />
            </Binding.ValidationRules>
        </Binding>
    </TextBox.Text>
</TextBox>

这是在 Spirit.Domain 命名空间中定义的 My NotEmptyValidationRule,它是演示应用程序中验证规则的副本

public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
    return string.IsNullOrWhiteSpace((value ?? "").ToString())
        ? new ValidationResult(false, "Field is required.")
        : ValidationResult.ValidResult;
}

我还附上了一个gif

请提供解决错误的demo或详细步骤

标签: c#wpfmaterial-design

解决方案


只需在绑定中使用的 Name 属性上添加PropertyChanged事件。


推荐阅读