Nous avons plusieurs objets de données dans notre application qui s'enroulent liés aux grilles. Nous les avons implémentant l'interface IDataErrorInfo, de sorte qu'en ajoutant des messages d'erreur aux propriétés, nous voyons le style de changement rowheader et les DataGridCells gagner une bordure rouge. Tout va bien.Comportement de validation imitant sans validation
Nous avons maintenant une exigence supplémentaire que plutôt que de simplement avoir des erreurs, nous avons des erreurs et des avertissements. Les avertissements sont identiques aux erreurs sauf qu'ils devraient produire une bordure jaune au lieu d'une rouge.
Nous avons créé une nouvelle interface, IDataWarningInfo, basée sur IDataErrorInfo. Fonctionne bien. Je peux y accéder à l'exécution, j'ai RowValidatiionRules qui est capable d'y accéder, et de définir l'en-tête de ligne jaune au lieu du rouge, l'info-bulle appropriée, etc. Ce qui me manque, c'est la possibilité de définir la bordure d'une cellule en jaune, sur la base qu'il est databound à une propriété où cette propriété a un message d'avertissement.
Je pouvais récupérer ce message d'avertissement en transmettant le nom de la propriété databound à l'interface; Je soupçonne que sous le capot, le code de validation fait exactement cela. Ce qui me manque, c'est comment le faire en XAML. Plus précisément, je pense que je dois appliquer un style à une cellule, où ce style contient un DataTrigger qui transmet à l'objet le nom de la propriété DataBound, puis si le résultat est différent de null, applique quelques Setters à la cellule .
Est-ce que quelqu'un sait comment y parvenir?