Pourquoi ne puis-je pas modifier les valeurs dans mon DataGridView, même si sa n'est pas définie à lecture seule?
J'ai un DataGridView, ce qui n'est pas définie En lecture seule. Aucun de ses colonnes sont mis en ReadOnly, et l'objet auquel il est lié n'est pas définie En lecture seule. Pourtant, je ne peux pas modifier le DataGridView éléments? L' .Propriété DataSource du DataGridView est fixé à un ReadOnlyCollection<>, mais je peux par programme à modifier les éléments, tout simplement pas de l'INTERFACE utilisateur. Ce qui se passe?
Comment êtes-vous essayer de modifier les éléments? Quels sont les comportements que vous pensez que vous devriez être de voir que vous ne voyez pas?
OriginalL'auteur GWLlosa | 2009-05-27
Vous devez vous connecter pour publier un commentaire.
Il s'avère que si votre DataGridView est lié à un ReadOnlyCollection, alors même si vous pouvez en programmant modifier n'importe quel élément de la collection, le DataGridView vous empêcher de modifier les valeurs. Je ne sais pas si ce comportement est intentionnel, mais c'est quelque chose à surveiller.
My bad, il s'avère que "l'une colonne qui peut être changé", était en fait pas correctement lié à la source de données.
+1 je souhaite que je l'avais cherché SI le matin. Ce un m'a pris des heures de cogner ma tête contre le mur avant que j'ai tout compris.
OriginalL'auteur GWLlosa
C'est simplement un long commentaire (d'où wiki) dans la lutte contre la "le DataGridView vous empêcher de changer certaines valeurs (chaînes de caractères), mais pas les autres valeurs (bool)" point; il n'est ni modifiable; en faire un
List<T>
et les deux sont modifiables...:OriginalL'auteur
J'ai installé VS 2013 hier, dernière version (mise à jour 5) et un bug en reste pas moins que provoque le comportement que vous décrivez.
En bref pour contourner le bug, assurez-vous d'abord le datagridview est d'être l'interface modifiable. Cela comprend notamment la petite flèche dans le concepteur de formulaire en haut à droite de la commande. Dans la flèche de liste déroulante est une option "activer la modification", assurez-vous qu'elle est activée. Maintenant, dans le concepteur de formulaires de modifier des colonnes dans certaines grandes (comme ajouter ou supprimer une colonne). Ça y est, lorsque vous exécutez le programme, vous devriez trouver le GUI est l'édition d'aujourd'hui.
À reproduire ce bug, dans le concepteur de formulaire utiliser la petite flèche en haut à droite du contrôle datagridview pour définir "activer la modification" pour de faux. Maintenant faire un changement majeur pour les colonnes (comme ajouter ou supprimer une colonne). Compilez et exécutez le programme. Retournez maintenant sur la petite flèche et le ré-activer "activer la modification" case à cocher. Exécutez à nouveau le programme. À ce stade, le bug se manifeste, et vous verrez que le datagridview n'est pas GUI-modifiable, même si vous avez configuré autrement dans le VS.
OriginalL'auteur DAG
Comment êtes-vous liant à votre DataGridView? Une chose est que si vous utilisez une Linq liste comme source de données interrogées à partir d'une base de données et vous n'avez pas l'objet complet, alors les propriétés sont en lecture seule, sauf si vous spécifiez "avec de nouveaux" dans la fonction de sélection. Il n'y a pas beaucoup d'information dans votre post. J'espère que cette aide.
OriginalL'auteur Joseph Connolly
Prendre
datagridview
tâche et cliquez sur modifier une colonne puis définir la colonne en Lecture Seule valeur False à la PropriétéOriginalL'auteur Jithu Wilson