TargetNullValue = '' 不工作 WPF C#

TargetNullValue = '' not working 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 解决方案 Post

编辑: 好的,我发现了问题,我的 NonEmptyStringValidator 导致了这个问题。不过,我仍想在我的文本框中保留此验证规则。有没有办法调整它以仍然保留验证规则,但在删除时使文本框 return 恢复为空?

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/> 可能会阻止更新为空字符串。