2009-06-23 8 views
0

semble assez simple, je veux prendre une liste de génériques d'entiers et les afficher sur un datagridview. google revient avec beaucoup de résultats sur l'affichage des classes personnalisées dans un datagridview, mais pas une liste de int. quand je viens de soumettre la liste comme source de données, rien ne se voit.Comment puis-je obtenir un datagridview pour afficher une liste <int>/list (of integer)?

J'ai essayé d'utiliser

dim _CheckIns as new list(of integer) 
_checkins.add(1577) 
_checkins.add(1999) 
Dim bl As New System.ComponentModel.BindingList(Of Integer)(Me._CheckIns) 
me._dg.datasource=bl 

alors essayé BindingSource d'aller avec la liste de liaison

dim bs as new BindingSource() 
bs.datasource=bl 
me._dg.datasrouce=bs 

Pas de chance jusqu'à présent.

+0

Je peux lire C# si des réponses dans les deux langues serait bien. – Maslow

Répondre

1

Ne sera pas facile, le regard du mécanisme de liaison de données pour les propriétés et Int32 n'en a pas. Vous pouvez le tester avec une liste < int?>, Il affichera HasValue et Value colums.

Ainsi, vous aurez l'envelopper dans une classe:

class MyInt 
{ 
    public int Value { get; private set; } 
    public MyInt(int v) { Value = v; } 
} 

Je l'ai fait immuable de se conformer aux meilleures pratiques actuelles.

+0

oh soignée, j'ai lu une fois que vous pourriez rendre l'ensemble privé, n'a pas fait attention à la syntaxe, et maintenant voir beaucoup d'endroits que je peux utiliser cette astuce. – Maslow

1

Essayez liaison de données bs après lui avoir donné une source de données

bs.DataBind() 
+0

Je ne trouve pas un membre de BindingSource, BindingList, ni datagridview appelé DataBind()? – Maslow

0

Je crois que la grille est l'objet qui doit être DataBound:

me._dg.DataSource = bs 
me._dg.DataBind() 
+0

Je ne trouve pas un membre de BindingSource, BindingList, ni datagridview appelé DataBind()? Ceci est une application Windows Forms, je me souviens d'une base de données dans asp.net peut-être? – Maslow

0

Je cherchais une réponse à cette question et juste fini par convertir à une liste

var lstInts = new List<int> {1, 2, 3, 4, 5}; 
var lstConvertToStrings = lstInts.Select(x => new {NumberAsString = x.ToString()}).ToList(); 
Questions connexes