2011-08-10 6 views
5

J'ai une validation configurée sur les cellules et fonctionne comme prévu (en plaçant une surbrillance rouge autour de la zone de texte et en ajoutant une info-bulle avec l'erreur). Toutefois, si j'essaie d'accéder à Validation.GetHasError (TheGrid) où TheGrid est mon DataGrid, il est toujours false. Est-ce que quelqu'un sait comment vérifier si des cellules dans le DataGrid ont des erreurs?Vérification de la présence éventuelle d'une cellule DataGrid WPF

Je veux faire cela afin de pouvoir désactiver la sauvegarde en cas d'erreur.

+0

Je pense que ma réponse à [cette question] [1] permet de résoudre de manière plus conviviale XAML . [1]: http://stackoverflow.com/questions/7121892/wpf-detect-row-validation-errors-in-c-sharp-code – user2112362

Répondre

5

Vous pourriez rencontrer des problèmes avec la virtualisation avec cela, mais vous n'avez probablement regarder les conteneurs:

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 
} 
+1

Merci, c'est essentiellement ce que je fini par faire, mais au lieu de regarder à travers les contrôles j'ai vérifié la propriété Errors sur mes données que le xaml était lié. – KrisTrip

+0

@KrisTrip: Si vous pouvez le lier à des données qui, bien sûr, doivent toujours être préférées, normalement, vous ne devriez jamais avoir à manipuler les conteneurs générés. –

Questions connexes