Verificando se qualquer célula de dados do WPF tem erro

Eu tenho validação de configuração nas células e funciona como esperado (colocando um destaque vermelho em torno da checkbox de texto e adicionando uma dica de ferramenta com o erro). No entanto, se eu tentar acessar Validation.GetHasError (TheGrid) onde TheGrid é meu DataGrid, é sempre false. Alguém sabe como verificar se alguma célula do DataGrid tem erros?

Eu quero fazer isso para que eu possa desativar o salvamento se houver erros.

Você pode ter problemas com a virtualização com isso, mas provavelmente precisa examinar os contêineres:

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 }