DataGrid控件使您可以在单元和行级别执行验证。 使用单元格级验证时,可以在用户更新值时验证绑定数据对象的各个属性。 通过行级验证,用户将更改提交到行时,可以验证整个数据对象。 你还可以为验证错误提供自定义的视觉反馈,或使用控件提供的默认视觉反馈 DataGrid 。
验证单个单元值
指定与列一起使用的绑定上的一个或多个验证规则。 这类似于验证简单控件中的数据,如 数据绑定概述中所述。
下面的示例演示了一个 DataGrid 控件,该控件具有四列绑定到业务对象的不同属性。 三列 ExceptionValidationRule 通过将 ValidatesOnExceptions 属性设置为来指定true
。
如果用户输入的值无效 (如课程 ID 列中的非整数) ,则单元格的周围会出现一个红色边框。
可以按照以下过程中所述更改此默认验证反馈。
验证单个行中的多个值
实现一个 ValidationRule 子类,该子类检查绑定数据对象的多个属性。 在 Validate 方法实现中,将value
参数值强制转换为 BindingGroup 实例。 然后,你可以通过属性访问数据对象 Items 。
下面的示例演示了此过程,用于验证StartDate
对象的属性值是否Course
早于其EndDate
属性值。
将验证规则添加到 DataGrid.RowValidationRules 集合。 RowValidationRules属性提供对 ValidationRules 实例的属性的直接访问 BindingGroup ,该实例对控件使用的所有绑定进行分组。
下面的示例 RowValidationRules 在 XAML 中设置属性。 ValidationStep属性设置为, UpdatedValue 以便仅在更新绑定数据对象后进行验证。