gpt4 book ai didi

wpf - 更改 WPF ValidatesOnException 绑定(bind)中的消息(或异常)

转载 作者:行者123 更新时间:2023-12-02 05:15:12 26 4
gpt4 key购买 nike

我有一个使用 MVVM 的 WPF 应用程序。我正在使用绑定(bind)到 POCO 对象。

文本框绑定(bind)到对象中的属性,例如:

           <TextBox.Text>
<Binding Path="CertainProperty" Mode="TwoWay" >
<Binding.ValidationRules>
<ExceptionValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>

现在这个属性是一个 int 属性,当用户试图输入一个非数字值时,他们会得到“输入字符串的格式不正确”。我需要做的是将此消息自定义为对用户更友好的消息。

我该怎么做?

最佳答案

不幸的是,该异常及其消息源自框架代码的深处,无法简单地换出。但是您可以做的一件事是通过编写您自己的 ValidationRule 来完全规避异常。例如:

public class Int32ValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
if (string.IsNullOrEmpty((string)value))
return ValidationResult.ValidResult;

int number;
return int.TryParse(value.ToString(), out number)
? ValidationResult.ValidResult
: new ValidationResult(false, "Please enter a valid integer");
}
}

当然,核心选项是将 CertainProperty 转换为 string 并让您的 View 模型或模型通过 IDataErrorInfo 验证它,但是将是对现有代码的重大更改。

关于wpf - 更改 WPF ValidatesOnException 绑定(bind)中的消息(或异常),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1127136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com