Est-il possible de lier un tableau de contrôle DataGridView?
J'ai un tableau, arrStudents, qui contient mes élèves de l'âge, de la GPA, et le nom de la sorte:
arrStudents[0].Age = "8"
arrStudents[0].GPA = "3.5"
arrStudents[0].Name = "Bob"
J'ai essayé de lier arrStudents à un DataGridView comme suit:
dataGridView1.DataSource = arrStudents;
Mais le contenu du tableau ne s'affiche PAS dans le contrôle. Ai-je raté quelque chose?
Avec ce que les autres ont écrit, je serais enclin à utiliser un
BindingList<T>
afin que les modifications apportées aux données sous-jacentes seraient visibles dans le DataGridView
.OriginalL'auteur phan | 2012-09-07
Vous devez vous connecter pour publier un commentaire.
Comme avec Adolfo, j'ai vérifié que ce œuvres. Il n'y a rien de mal dans le code affiché, donc le problème doit être dans le code que vous ne présentez pas de.
Ma conjecture:
Age
etc ne sont pas des propriétés publiques; soit ils sontinternal
ou ils sont champs, c'est à direpublic int Age;
au lieu depublic int Age {get;set;}
.Voici votre code de travail pour à la fois un tableau typé et un tableau de types anonymes:
quel est le type exact de
arrStudents
, et ce n'estStudent
ressembler ?Eh bien, le type exact peut être trouvé dans la réponse que j'ai choisi pour cette question: stackoverflow.com/questions/12321842/.... "arrSummary" en ce que la solution est ce que mon arrStudents tableau est comme. Si je peux lier le arrSummary dans cette question à un DataGridView je serais heureux ainsi.
le code dans votre réponse est un type anonyme; ce qui en c# n'est pas accessible en écriture propriétés, de sorte qu'il est incompatible avec le code indiqué dans votre question. J'ai aussi joué avec cela à l'aide de types anonymes, et fonctionne toujours.
Wow, l'ampoule a explosé dans ma tête. Merci Marc!!! Il n'y avait aucune intention de "mensonge". Honnêtement, je n'ai décrit le problème comme je l'ai vu, mais ma compréhension de celui-ci est, comme vous pouvez le voir, le mal.
OriginalL'auteur Marc Gravell
Cela fonctionne pour moi:
Ou moins redondantes:
Je voudrais aussi utiliser un
List<Student>
au lieu d'un tableau, car il devra se développer le plus probable.Est que ce Que vous faites trop?
Pensé à elle. J'ai été en utilisant les membres publics de la classe plutôt que des propriétés. Bizarre tout de même!
Va automatiquement ajouter des éléments à la liste lorsque l'utilisateur comprend de nouvelles lignes?
OriginalL'auteur Adolfo Perez