1

我有一个数据网格,用户将添加行。它有一个列(文本列(带有文本框和单元格 eidt 模板的模板列))和一个组合列。

我想做这些验证

  1. 文本列不应允许重复值,并且应显示验证错误。

所以让我们说用户输入

A,组合框项目 1 B,组合框项目 1 C,组合框项目 2 B,组合框项目 3 E,组合框项目 4

A,Combobox Item 5 -- 这应该显示验证错误

  1. 整个数据应该是唯一的:

所以让我们说用户输入

A,组合框项目 1 B,组合框项目 1 C,组合框项目 1 A,组合框项目 2 C,组合框项目 2

A,Combobox Item 2 -- 这应该显示验证错误

我看到了validationRule,但那是用于单行中单元格值的Vaidation。我找不到任何可以验证现有/以前输入的数据的内容。

顺便说一句,我正在使用 MVVM 进行开发。

有什么建议么 ?

  • 吉里哈
4

3 回答 3

1

对于第一种类型验证,因为它是单个单元格验证,我使用IDataErrorInfo

对于第二部分,我使用 datagRid.RowValidationRule 但由于我需要当前行的数据网格集合,我需要以某种方式将集合传递给验证规则。所以我使用它如下:

  1. 将参数传递给验证规则

注意:上面的这个例子传递的是静态资源而不是绑定。但这是一个解释清楚的博客。

  1. 为了传递绑定集合,我使用了这个博客中提到的模式

希望这可以帮助任何正在寻找类似问题的人。

  • 吉里哈
于 2012-04-27T21:53:19.110 回答
0

数据表内置了这个:)你可以设置约束并收到验证错误。

于 2012-04-26T05:20:33.750 回答
0

使用 MVVM,您可能希望使用行 ViewModel 上的 IDataErrorInfo 接口使用基于属性的验证。

对于自定义验证,您可以将CustomValidationAttribute与个性化验证方法一起使用。

于 2012-04-26T01:30:34.653 回答