2

在 MVVMIDataErrorInfo中用于验证。在这个时间索引器检查值不能得到。在调用它后如何检查我无法获取的值。代码在这里。列名中传递的值是什么。

public string this[string columnName]
{
    get { return GetValidationError(columnName); }
}

为什么要在 wpf 中使用索引器进行验证。任何人都可以说一下。

4

1 回答 1

2

如果使用 IDataErrorInfo 接口,则验证实现该接口的类。

如果您有属性名称,请激活验证并更改属性,索引器将使用字符串 columnName = "Name" 调用。现在您可以在 if 语句中处理“名称”验证

if(columnName  == "Name")
    // do Name validation

//编辑

如果您通过绑定更改属性,则会在 wpf 中触发验证。你应该像这样装饰你的绑定:

Text="{Binding UpdateSourceTrigger=LostFocus, Path=FirstName, ValidatesOnDataErrors=true, NotifyOnValidationError=true}"

这是使用 WPF 数据绑定和错误模板的 IDataErrorInfo 实现的简单说明。

WPF:使用 IDataErrorInfo 轻松进行验证

于 2012-05-21T08:42:31.943 回答