DataGrid.RowValidationRules 属性

定义

获取用于验证每个行中的数据的规则。

public:
 property System::Collections::ObjectModel::ObservableCollection<System::Windows::Controls::ValidationRule ^> ^ RowValidationRules { System::Collections::ObjectModel::ObservableCollection<System::Windows::Controls::ValidationRule ^> ^ get(); };
public System.Collections.ObjectModel.ObservableCollection<System.Windows.Controls.ValidationRule> RowValidationRules { get; }
member this.RowValidationRules : System.Collections.ObjectModel.ObservableCollection<System.Windows.Controls.ValidationRule>
Public ReadOnly Property RowValidationRules As ObservableCollection(Of ValidationRule)

属性值

ObservableCollection<ValidationRule>

用于验证每行数据的规则。

示例

以下示例演示了一个用于检查对象的属性值Course是否StartDate早于其EndDate属性值的一个ValidationRule示例。 此代码示例是 有关如何:使用 DataGrid 控件主题实现验证 的较大示例的一部分。

public class CourseValidationRule : ValidationRule
{
    public override ValidationResult Validate(object value,
        System.Globalization.CultureInfo cultureInfo)
    {
        Course course = (value as BindingGroup).Items[0] as Course;
        if (course.StartDate > course.EndDate)
        {
            return new ValidationResult(false,
                "Start Date must be earlier than End Date.");
        }
        else
        {
            return ValidationResult.ValidResult;
        }
    }
}
Public Class CourseValidationRule
    Inherits ValidationRule

    Public Overrides Function Validate(ByVal value As Object, _
        ByVal cultureInfo As System.Globalization.CultureInfo) _
        As ValidationResult

        Dim course As Course = _
            CType(CType(value, BindingGroup).Items(0), Course)

        If course.StartDate > course.EndDate Then
            Return New ValidationResult(False, _
                "Start Date must be earlier than End Date.")
        Else
            Return ValidationResult.ValidResult
        End If

    End Function

End Class

以下示例在 RowValidationRules XAML 中设置属性。 该 ValidationStep 属性设置为 UpdatedValue ,以便仅在更新绑定数据对象后进行验证。 当用户指定早于开始日期的结束日期时,行标题中将显示一个红色感叹号 (!) 。

<DataGrid.RowValidationRules>
  <local:CourseValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>

注解

借助该 DataGrid 控件,可以在单元格和行级别执行验证。 使用单元格级验证,可以在用户更新值时验证绑定数据对象的单个属性。 通过行级验证,用户在提交对行的更改时验证整个数据对象。 若要创建自定义验证规则,请创建派生自 ValidationRule 该类并实现该方法的 Validate 类。 将自定义验证规则添加到 RowValidationRules 集合。

如果使用该 ItemBindingGroup 属性,则忽略该 RowValidationRules 属性。

适用于

另请参阅