c# - TargetNullValue = '' 不工作 WPF C#
问题描述
我有以下文本框,不知道为什么格式不会正常,但你明白了。
<TextBox LostFocus="TextBox_LostFocus">
<TextBox.Text>
<Binding Path="InputVolts"
TargetNullValue=''
FallbackValue=''>
<Binding.ValidationRules>
<u:NonEmptyStringValidator/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
此文本框绑定到以下属性:
public int? InputVolts
{
get { return _InputVolts; }
set { Set(ref _InputVolts, value);}
}
在我的表单中,如果我在文本框中输入像 240 这样的数字,则视图模型将使用该值进行更新。如果我尝试从文本框中删除 240,则视图模型不会相应地更新 InputVolts 属性。
我从以下 帖子中了解到 TargetNullValue 解决方案
编辑: 好的,我发现了问题,我的 NonEmptyStringValidator 导致了这个问题。不过,我想在我的文本框中仍然有这个验证规则。无论如何调整它以仍然保留验证规则但在删除时使文本框返回 null ?
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
ValidationResult validationResult = new ValidationResult(false, "Value cannot be empty.");
if (value != null)
{
string valueAsString = value as string;
if (valueAsString.Length > 0)
validationResult = ValidationResult.ValidResult;
}
return validationResult;
}
我也尝试使用 FallBackValue,但似乎没有任何效果。任何帮助将不胜感激!
谢谢,
解决方案
这<u:NonEmptyStringValidator/>
可能会阻止对空字符串的更新。
推荐阅读
- reactjs - 向 Firebase 添加数组
- java - 为什么我的代码没有删除重复的节点?我的输出仍然是 12311
- python - 使用 tf listener 转换姿势在 Rviz 中不起作用
- javascript - 如何在 Angular 中的 mat-checkbox 更改中向数组推送和弹出项目?
- asynchronous - 如何将阻塞函数的更新变量放入 ReactiveX 的异步数据流中
- express - 为什么带有“离线”选项的浏览器仍然表现得更像是“在线”应用程序?
- git - Git 结帐分支并修剪与先前结帐相关的所有内容(包括 git-lfs 仍然存在)
- python - 在 python 中使用正则表达式删除部分字符串
- mongodb - 为什么我的 mongo 容器的 docker-compose 健康检查总是失败?
- format - 如何将用户提示的响应放入剪贴板(格式不同)