我们在WPF应用程序中使用XamDataGrid。 它运行良好,我们在应用程序中添加了对 IDataErrorInformation 的支持:
<igDP:FieldLayoutSettings AllowFieldMoving="No"
AutoGenerateFields="False"
SupportDataErrorInfo="RecordsAndCells"
DataErrorDisplayMode="ErrorIconAndHighlight" />
此数据网格上的绑定转到实现 IDataErrorInformation 的对象 Foo 的 ObservableCollection。 我们对单个属性(例如 Text 属性)进行数据验证,如果属性为空或字符过多,则会生成错误。 这适用于更新方案 - 突出显示包含错误的单元格并显示工具提示。
<igDP:Field Name="Text"
Label="{base:TextID _TextField}">
</igDP:Field>
我们需要完成的是针对绑定到数据源的整个可观察集合验证单元格的值。 因此,如果用户在第 2 行中为文本单元格键入"Apple",但第 10 行文本单元格中已存在"Apple",则会生成一个错误条件,用户必须在继续之前更正该条件。
我们如何才能最好地使用 XamDataGrid 实现这一目标? 我们希望保持它干净,以便对象 Foo 只验证它自己的属性,而不知道整个集合。
这篇文章非常接近,但我不确定如何使用 XamDataGrid 完成它: 针对整个集合验证集合项以防止重复 我们可以将 XamDataGrid Items 集合传递给自定义验证程序吗?
这是一个可能适合您的解决方案:
http://brianlagunas.com/2012/04/11/validate-a-property-against-a-parent-collection/