- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 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/
基于这个例子 http://msdn.microsoft.com/en-us/library/system.windows.data.binding.validatesonexceptions.asp
在我的 silverlight 4 MVVM 应用程序中,我可以在运行时切换语言: public void SetLanguage(string language) { var culture
我想使用 ValidatesOnException 在 WPF 中运行基本数据验证示例,但它根本不起作用,并且一旦我的 viewmodel 抛出 ValidationException,我的程序崩溃并
在我的应用程序中,我有绑定(bind)到文本框的数字( double 或整型)ViewModel 属性。 ViewModel 实现 IDataErrorInfo 以检查输入的值是否在“业务逻辑”可接受
我有一个使用 MVVM 的 WPF 应用程序。我正在使用绑定(bind)到 POCO 对象。 文本框绑定(bind)到对象中的属性,例如:
从 .NET3.5 到 .NET4.0,我遇到了一个非常烦人的变化。在绑定(bind)上使用 ExceptionValidationRule 来验证绑定(bind)属性 setter 中抛出的异常时,
我正在使用 WPF 验证的 ValidatesOnExceptions=true 方法。这涉及在源的属性 setter 方法中抛出异常。它工作但调试器总是在抛出异常时中断。我猜这是因为异常没有直接在我
我是一名优秀的程序员,十分优秀!