J'ai un Par exemple: < / Strong> La propriété liée à la cellule code> de Je sais pourquoi em> l'erreur est lancée, car la cellule Autres notes: strong> p> Je serai heureux de fournir plus d'informations si nécessaire si nécessaire . p> p> DataGrid code> affichant plusieurs lignes et colonnes de données, chacune est liée à son propre propriété
code>. Le
DataGrid code> n'est pas sur un
tabcontrol code> mais chaque fois que la fenêtre qu'elle vit est fermée et que la réouverture, je reçois le message d'erreur:
'deferrefresh' n'est pas autorisé pendant un AddNew ou transaction d'édition. Code> Seulement si em> Il y avait des problèmes de validation avec un ou plusieurs des cellules code> datagrid code> S.
datagrid code> est un
double code> et l'utilisateur entre "Hello", bien sûr alors
WPF code> La bordure rouge automatique est affichée autour de la cellule code> code>. Maintenant, si l'utilisateur ferme la fenêtre et que vous le rouvrez, l'erreur se produirait. P>
code> ne laisse pas "mode d'édition". P>
DataGrid code> sur un
tabcontrol code> (quelle mine n'est pas). LI>
double code> ou déclenche uniquement un
double code>, mais le problème Il n'y a pas de bonnes façons de limiter le nombre de points décimaux (".") que l'utilisateur peut insérer. Je contrôlais la saisie de l'utilisateur via
previewTextInput code> et permettant uniquement 0-9 et ".". li>
ul>
3 Réponses :
Ceci est un bug qui a été corrigé avec .NET Framework 4.5+. Malheureusement, pour ceux d'entre nous bloqués avec les versions précédentes, l'erreur est toujours un problème. La meilleure solution que j'ai trouvée est de simplement lier le DataGrid code> à
Propriétés code> avec type
chaîne code>. De cette façon, le contrôle total sur l'entrée de l'utilisateur est disponible. Avec le contrôle total, l'utilisateur ne doit pas être en mesure de déclencher des erreurs et le
DataGrid code> ne placera pas le programme. p>
J'ai ce problème exact avec .NET 4.5.1.
@ l33t jamais réparer ça? Moi aussi, je cours .net 4.5 et je vois toujours cela.
@Jordan, pouvez-vous créer un lien vers le document montrant quand exactement cela a été corrigé / adressé? Était-ce en 4.5 ou 4.5.1, 4.5.2, etc.? Je ne pouvais rien trouver sur les recherches que c'était même abordée et encore moins fréquentées.
@Marquelv, pas encore correction :(
Je suis confronté au même problème même avec .NET 4.6.
Vous pouvez essayer de forcer datagrid dans l'annulation de l'édition lorsque vous en avez besoin:
myDatagrid.CommitEdit(); myDatagrid.CancelEdit();
Où mettez-vous ce code? J'ai essayé de le mettre sur l'événement soulevé par le bouton utilisé pour fermer la fenêtre mais cela ne résout pas le problème pour moi
@FrancesCods Hey, j'avais un problème similaire et que l'erreur a été déclenchée par un datagrid.itemsSource = données; ligne. J'ai littéralement la place juste avant la ligne qui causait l'erreur et cela a fonctionné pour moi - pour moi, c'était causé par un double clic erroné sur une cellule dans le Datagramrid (le double clic faisait le programme croire que l'utilisateur essayait d'éditer le contenu d'une cellule mais ce n'était pas l'intention des utilisateurs)
J'avais ce numéro .NET 4.5.1 et c'était la seule chose qui a fonctionné pour moi.
Utilisez-vous une nouvelle fenêtre de fenêtre / datagrid à chaque fois.?
J'ai résolu un problème similaire en appelant buttonblah.focus () à l'intérieur de l'événement de fermeture de la fenêtre, cela oblige l'événement LostFocus à tirer sur la cellule. Pas jolie je sais ... Une autre solution consiste à permettre à la fenêtre d'être fermée à l'aide des boutons "Enregistrer" et "Annuler".
@Jordancarroll Essayez de gérer la fenêtre_clusion de l'événement et d'effacer la source de données DataGrid. Mais comme son nouvel exemple de grille à chaque fois, cette question ne devrait pas se passer du tout.
Eh bien, le problème est apparemment un bug bien connu. Le problème est que la cellule
code> ne quitte pas le mode d'édition (s'il n'y a pas de texte non valide) car le texte ne correspond pas au type
type code> de la propriété. Cela a du sens, mais c'est un bug. Le problème n'est pas qu'il ne perd pas la concentration non plus. Il a apparemment été fixé en 4.5, mais cela ne me fait pas de bien. Jusqu'à présent, je ne pense pas qu'il y ait de grandes solutions ou de solutions de contournement.
J'ai le même problème avec .NET 4.7.1, et cela a empiré que c'était au début. Maintenant, il n'en annule ni n'engage pas le mode édition, non seulement s'il a des erreurs de validation. Je vois que l'événement de LostFocus est tiré pour la cellule, mais il semble être trop tard, seul le contournement mentionné par @jack travaille.