2013-06-19 3 views
0

J'ai un List<Student> où pour chaque étudiant 4 propriétés.Listview C# au lieu de listbox

En ce moment je suis en utilisant ceci:

listStudents = new List<Student>(); 

foreach (Student s in listStudents) 
{ 
    listbox1.Items.Add(s); 
} 

Mais il montre les propriétés 4 à côté de l'autre. J'ai fait quelques recherches pour trier les propriétés dans les colonnes, et j'ai trouvé listview. Est-ce que quelqu'un peut m'expliquer comment puis-je faire cela?

J'ai essayé de add columns à la collection du listview, mais il ne fonctionne toujours pas ...

J'ai essayé aussi:

listStudents = new List<Student>(); 

foreach (Student s in listStudents) 
{ 
    listview.Items.Add(s); 
} 

Quelqu'un peut-il me dire ce que je fais faux? Je veux juste les 4 propertys pour chaque étudiant dans différentes colonnes.

+0

voir ceci http://stackoverflow.com/questions/9951704/add-item-to-listview-control –

+0

J'aime réellement listview au lieu de listbox. Il peut sembler amateur avec pas beaucoup de code de fantaisie. Cela peut ressembler à une grille. Ajoutez des en-têtes/colonnes, puis ajoutez des éléments. Je pense que vous devez ajouter chaque valeur de colonne séparément. –

Répondre

0

Définissez d'abord les noms de colonnes (vous pouvez le faire avec le concepteur graphique):

listView1.Columns.Add("col 1"); 
listView1.Columns.Add("col 2"); 
listView1.Columns.Add("col 3"); 
listView1.Columns.Add("col 4"); 

puis ajouter des lignes (je suppose ici que vos propriétés sont des chaînes):

foreach(Student s in listStudents){ 
    listView1.Items.Add(new string[]{ 
     s.Property1, s.Property2, s.Property3, s.Property4 
    }); 
} 
0
  List<Student> StudentsList = new List<Student>(); 
      Student StuObj = new Student(); 
      StuObj.ID = 1; 
      StuObj.age = 23; 
      StuObj.name = "ROCK"; 
      StudentsList.Add(StuObj); 
      foreach (Student s in StudentsList) 
      { 
       string[] array = { s.ID.ToString(), s.age.ToString(), s.name.ToString()}; 
       var items = listView1.Items; 
       foreach (var value in array) 
       { 
        items.Add(value); 
       } 

      } 
Questions connexes