c# - 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或详细步骤
解决方案
只需在绑定中使用的 Name 属性上添加PropertyChanged事件。
推荐阅读
- excel - 如何在特定行(VBA)上方添加新行?
- twitter-bootstrap - 如果移动,Bootstrap 4 移动到新行
- setcookie - IBM Http Server - 无法更新 cookie
- django - 模板中未显示的表单中的 DJANGO 初始值(有些不显示)
- laravel - 在 https 中加载 swagger UI 内容 - Lumen
- ms-access-2010 - 我可以在 Ms Access Form 的未绑定文本字段中的 Dcount 公式后添加文本吗?
- vue.js - Promise 被拒绝并且无法在 VUE 和 Directus 中获取Collections 或 getItems
- laravel - 如何修复 Laravel 十进制数问题
- r - R 混淆矩阵误差数据和参考因素同级别
- matplotlib - 从轮子为 aws lambda 安装 matplotlib