我在单元格上设置了验证,并且它按预期工作(在文本框周围放置红色突出显示并添加一个带有错误的工具提示)。但是,如果我尝试访问TheGrid是我的DataGrid的Validation.GetHasError(TheGrid),它始终是false。有谁知道如何检查DataGrid中的ANY单元是否有错误?检查是否有任何WPF DataGrid单元格有错误
我想这样做,所以我可以禁用保存,如果有错误。
我在单元格上设置了验证,并且它按预期工作(在文本框周围放置红色突出显示并添加一个带有错误的工具提示)。但是,如果我尝试访问TheGrid是我的DataGrid的Validation.GetHasError(TheGrid),它始终是false。有谁知道如何检查DataGrid中的ANY单元是否有错误?检查是否有任何WPF DataGrid单元格有错误
我想这样做,所以我可以禁用保存,如果有错误。
您可能会遇到的问题与虚拟化这一点,但你可能要看看容器:
var errors = (from c in
(from object i in _myGrid.ItemsSource
select _myGrid.ItemContainerGenerator.ContainerFromItem(i))
where c != null
select Validation.GetHasError(c))
.FirstOrDefault(x => x);
if (errors)
{
//There be errors
}
谢谢,这基本上是我落得这样做,但而不是查看控件,我检查了xaml绑定到的数据的错误属性。 – KrisTrip
@KrisTrip:如果你可以将它绑定到当然总是首选的数据上,那么通常应该不需要一直弄乱生成的容器。 –
我想,我的回答[这个问题] [1]解决它更XAML友好的方式。 [1]:http://stackoverflow.com/questions/7121892/wpf-detect-row-validation-errors-in-c-sharp-code – user2112362