1

我们在 WPF 应用程序中使用 XamDataGrid。它运行良好,我们在应用程序中添加了对 IDataErrorInfo 的支持:

<igDP:FieldLayoutSettings AllowFieldMoving="No"
    AutoGenerateFields="False"
    SupportDataErrorInfo="RecordsAndCells" 
    DataErrorDisplayMode="ErrorIconAndHighlight" />

此数据网格上的绑定转到实现 IDataErrorInfo 的对象 Foo 的 ObservableCollection。我们对单个属性进行数据验证,例如 Text 属性,如果属性为空或字符过多,则会生成错误。这对于更新场景非常有用——有错误的单元格被突出显示并出现一个工具提示。

  <igDP:Field Name="Text"
      Label="{base:TextID _TextField}">
  </igDP:Field>

我们需要完成的是针对绑定到数据源的整个可观察集合验证单元格的值。因此,如果用户在文本单元格的第 2 行中键入“Apple”,但第 10 行文本单元格中已经存在“Apple”,我们会生成一个错误条件,用户必须在继续之前更正该错误条件。

我们如何使用 XamDataGrid 最好地完成此任务?我们希望保持它干净,以便对象 Foo 只验证它自己的属性并且不知道整个集合。

本文非常接近,但我不确定如何使用 XamDataGrid 来完成它:针对整个集合验证集合项以防止重复 我们可以将 XamDataGrid 项集合传递给自定义验证器吗?

4

1 回答 1

3

这是一个可能对您有用的解决方案:

http://brianlagunas.com/2012/04/11/validate-a-property-against-a-parent-collection/

于 2012-04-12T00:26:18.350 回答