2010-11-27 4 views
-1

J'ai un petit problème avec la grille de données Silverlight. J'ai écrit un petit exemple d'application pour montrer le problème. (Vous pouvez le télécharger ici: http://rapidshare.com/files/433480041/DataGridValidationTest.zip).
Ici vous pouvez ajouter une nouvelle personne (a un nom et un âge) à une collection qui est affichée dans un DataGrid.
J'ai également implémenté la validation basée sur l'interface INotifyDataErrorInfo. Si vous cliquez sur Enregistrer, les données sont validées (le nom ne doit pas être nul, Age gt 0).

La validation fonctionne correctement, mais les erreurs de validation ne s'affichent que si je clique sur une ligne. Après avoir cliqué sur le bouton Enregistrer, les données sont validatet, mais non représenté sur la grille (voir photo ci-dessous):
Validation is not shown :(Problème d'erreur d'affichage de la validation DataGrid

Si je clique sur la ligne, pour modifier les données, le message de validation est affiché (image ci-dessous): Validation shown

Si je suis dans cette rangée, je dois résoudre le problème, car je ne suis pas en mesure de sélectionner une autre cellule.

Est-ce que quelqu'un sait, comment je peux montrer (toutes) les erreurs directement dans la grille? Et puis-je sortir de la cellule avec l'erreur sans résoudre le problème?

Thx à l'avance,

TJ

Répondre

0

Pour autant que je sache, dans Silverlight DataGrid, une seule rangée serait active à la fois, donc si vous voulez valudate toutes les lignes en même temps, ce n'est pas possible.

Une autre solution consiste à ajouter tout votre contenu dans la même cellule. Toutes vos données seraient donc modifiables et seraient validées en même temps. Ce que je veux dire est

Si vous avez grille avec 2 colonnes - <DataGrid> <Name> <Age> </DataGrid>

la faire ressembler à ce <Grid> <Cell> <Grid> <Name> <Age> </Grid> </Cell></DataGrid>