在拒绝DataGrid上的更改后删除验证错误
本文关键字:删除 验证 错误 拒绝 DataGrid | 更新日期: 2023-09-27 18:20:57
我有一个DataGrid
,它绑定到一个类型化的DataTable
,如下所示:
<DataGrid ItemsSource="{Binding Path=MyTypedDataTable}" ... />
该CCD_ 3还具有CCD_。在一种情况下,一切正常:当一行中出现错误时,我按下撤消按钮(MyTypedDataTable.RejectChanges()
);验证错误仍然存在,并且该行中的数据仍然相同。在没有错误的情况下,RejectChanges()
工作正常。
如何使验证错误消失?提前感谢您的建议。
我使用它,它在我的项目中有效。
public class RowDataValidationRule : ValidationRule
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
BindingGroup group = (BindingGroup)value;
foreach (var item in group.Items)
{
DataRowView rowView = item as DataRowView;
DataRow row;
if (rowView != null)
row = rowView.Row;
else
row = item as DataRow;
if (row != null && row.HasErrors)
{
var errorColumns = row.GetColumnsInError();
StringBuilder sb = new StringBuilder();
foreach (var column in errorColumns)
{
sb.AppendLine(row.GetColumnError(column));
}
return new ValidationResult(false, sb.ToString());
}
}
return ValidationResult.ValidResult;
}
}
xaml
<DataGrid ItemsSource="{Binding Path=MyListItems, Mode=OneWay, ValidatesOnDataErrors=true, ValidatesOnExceptions=true}">
<DataGrid.RowValidationRules>
<Base:RowDataValidationRule />
</DataGrid.RowValidationRules>
</DataGrid>